在dedecms(织梦内容管理系统)中,默认情况下搜索结果页面无法调用自定义字段,为了在搜索结果页显示这些自定义字段,需要进行一些代码修改和函数编写,以下是一个详细且逻辑清晰的步骤说明,教你如何在dedecms搜索模板中调用自定义字段名。
方法步骤
一、打开并编辑extend.func.php文件
1、找到文件:找到并打开位于include目录下的extend.func.php
文件。
2、添加函数:在该文件的末尾添加如下代码:
function Search_addfields($id,$result){
global $dsql;
$dedejs = $dsql>GetOne("SELECT * FROMdede_addonsoft
where aid='$id'");
$name=$dedejs[$result];
return $name;
}
dede_addonsoft
是要调用自定义字段的附加表,这个表名需要根据实际模型来更改,软件模型一般是dede_addonsoft
,普通文章一般是dede_addonarticle
。
二、编辑arc.searchview.class.php文件
1、找到文件:找到并打开位于include目录下的arc.searchview.class.php
文件。
2、添加代码:在该文件中搜索“//处理一些特殊字段”,在其下面添加如下代码:
$row["softsize"]=Search_addfields($row["id"],"softsize");
这里的softsize
是你要调用的自定义字段名称,如果有多个自定义字段,可以添加多行类似的代码,但要将softsize
替换为相应的字段名。
三、在搜索模板中调用自定义字段
1、打开模板文件:打开位于你的模板目录下的search.htm
文件。
2、使用标签调用:在模板中使用[field:字段名/]
标签来调用自定义字段,如果你要调用软件大小,可以使用:
[field:softsize/]
示例表格
步骤 | 文件路径 | 添加/修改的代码 |
1 | include/extend.func.php | function Search_addfields($id,$result){ global $dsql; $dedejs = $dsql>GetOne("SELECT * FROM dede_addonsoft where aid='$id'"); $name=$dedejs[$result]; return $name; } |
2 | include/arc.searchview.class.php | $row["softsize"]=Search_addfields($row["id"],"softsize"); |
3 | 模板目录/search.htm | [field:softsize/] |
FAQs
Q1:如何在dedecms搜索结果页调用多个自定义字段?
A1:在extend.func.php
文件中添加一个通用函数后,可以在arc.searchview.class.php
文件中多次调用该函数,每次传入不同的字段名。
$row["softsize"]=Search_addfields($row["id"],"softsize"); $row["softgrade"]=Search_addfields($row["id"],"softgrade");
然后在模板中使用对应的标签调用这些字段:
[field:softsize/] [field:softgrade/]
Q2:如何确保自定义字段在搜索结果页正确显示?
A2:确保以下几点:
1、确认extend.func.php
文件中的SQL查询语句正确无误,表名和字段名与数据库中的一致。
2、确保在arc.searchview.class.php
文件中正确添加了处理自定义字段的代码。
3、在模板文件中使用正确的标签格式调用自定义字段。
4、如果仍然不显示,检查数据库中是否有相关数据以及数据是否正确。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1237326.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复