织梦TAG标签列表页和搜索结果页调用自定义字段内容教程

作者 : MOOMOO 本文共1665个字,预计阅读时间需要5分钟 发布时间: 2021-09-12 共127.19K人阅读

我们在给模型添加自定义字段后,TAG标签列表页和搜索页需要显示自定义的字段时,织梦默认是无法显示自定义字段的内容的。

网上很多教程都是写死或者改动系统文件,这样不仅不够人性化,而且改动系统文件对升级存在影响。本文章介绍个完美的方法,既不改动系统核心文件,又不写死任何东西。

这个自定义方法适用于织梦整站,包括会员和后台使用

打开 include/extend.func.php ,在最下面加入

function GetAddField($aid,$addField)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT c.addtable FROM #@__archives AS a LEFT JOIN #@__channeltype AS c ON a.channel=c.id where a.id='$aid'");
    $addtable = trim($row['addtable']);
    $row = $dsql->GetOne("SELECT $addField FROM `$addtable` WHERE aid=$aid");
    return $row["$addField"];
}

taglist.htm(TAG标签列表页) search.htm(搜索结果页)模板调用标签

[field:id function=GetAddField(@me,"自定义字段名")/]

如果是时间类型字段,你需要这样调用

[field:id function=MyDate('Y-m-d',GetAddField(@me,"时间类型字段名"))/]

如果是图片类型字段,你需要继续在 include/extend.func.php ,在最下面加入

/**
 *  自定义图片字段调用图片地址
 *
 * @access    public
 * @param     string  $fieldname  	字段名
 * @param     string  $ftype	  	输出样式
 * @return    string
 */
if(!function_exists('GetImgUrl'))
{
	function GetImgUrl($fieldname, $ftype = 1)
	{
		if($fieldname != '')
		{
			$dtp = new DedeTagParse();
			$dtp->LoadSource($fieldname);
			if(is_array($dtp->CTags))
			{
				foreach($dtp->CTags as $ctag)
				{
					if($ctag->GetName() == 'img')
					{
						$width = $ctag->GetAtt('width');
						$height = $ctag->GetAtt('height');
						$imgurl = trim($ctag->GetInnerText());
						$img = '';
						if($imgurl != '')
						{
							if($ftype == 1)
							{
								$img .= $imgurl;
							}
							else
							{
								$img .= '<img src="' . $imgurl . '" width="' . $width . '" height="' . $height . '" />';
							}
						}
					}
				}
			}
			$dtp->Clear();
			return $img;
		}
	}
}

然后在模板中调用图片字段

[field:id function=GetImgUrl(GetAddField(@me,"图片类型字段名"))/]

什么?不喜欢添加自定义方法,那就直接用runphp吧

[field:id runphp=yes]global $dsql;$row = $dsql->GetOne("SELECT c.addtable FROM #@__archives AS a LEFT JOIN #@__channeltype AS c ON a.channel=c.id where a.id=@me");$result = $dsql->GetOne("SELECT body FROM `$row[addtable]` WHERE aid=@me");@me = cn_substr(html2text($result['body']),500);[/field:id]
body 为自定义字段名,换成你自己的自定义字段。
1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 本站客服QQ:4387159,唯一购买官网:MooMoo.TOP!
3. 盗版,破解有损他人权益和违法作为,请各位会员支持正版!
MooMoo » 织梦TAG标签列表页和搜索结果页调用自定义字段内容教程

常见问题FAQ

是否支持共享资源赚外快?
本站支持任何人上传资源,一经采用即可展示,客户下单既有80%的提成。
可以免费教技术吗?
大家可以加群进行探讨共同进步,重点问题管理员会进行解答。
我是小白要怎么学习?
加群后做到不耻下问,看文章学习演示就能成为大佬。

发表评论