Dedecms织梦搜索页面调用自定义字段的方法。在做产品或者什么的时候,搜索页无法调用附加表的字段。所以就要改点地方了!操作如下:
问题:
dedecms更改内容模型,新添加的字段在搜索结果页不显示的问题。
templets/search.htm
解答:
1、打开 include/extend.func.php 这个文件,在文件末尾添加如下代码:
/** 在搜索结果页显示新加字段值 2018.4.22 **/
/** 获取附加表(dede_addon_*)指定字段值 **/
function Search_addfields($id,$result){
global $dsql; // 数据库操作对象,全局对象,织梦已经初始化,可直接使用;
$record = $dsql->GetOne("SELECT * FROM `dede_addonarticle17` where aid='$id'");
$name=$record[$result];
return $name;
}
注:其中dede_addonarticle17是要调用自定义字段的附加表,在织梦后台核心->频道模型->内容模型管理可以看到,这个需要根据具体的情况来更改,其他的不用修改。`dede_addonarticle17`,此表名两边的符号不是单引号!最好复制!
2、然后打开 include/arc.searchview.class.php 这个文件,搜索“ //处理一些特殊字段”,在下面添加如下代码:
/** 2018年4月22日添加 start **/
$row["address"]=Search_addfields($row["id"],"address");
$row["quota"]=Search_addfields($row["id"],"quota");
$row["service"]=Search_addfields($row["id"],"service");
/** 2018年4月22日添加 end **/
其中address是我需要搜索页面显示的自定义字段的名称,如果有多个自定义字段,这就添加多行,但是一定要把address修改下。 最后一步就是在search.htm中 使用[field:address/] 就可以调用出来了,其中address是自定义的字段名。
如果你的数据表前缀不是dede_,适当调整dede_addonarticle里的”dede_”。