我们在使用DEDECMS制作文章页或者列表页模板时候,都希望在页面中显示和内容有关的标题或者专题内容,当然显示相关文章的标题这个功能是DEDECMS标签已经自带了的,今天主要是讲如何在DEDECMS文章模板中调用和内容有关的专题标题,这个我们需要修改DEDECMS相关的PHP文件来实现。
打开include/extend.func.php,在最后添加:
function getlikespc($keywords=0)
{
global $cfg_basehost,$dsql;
$key = array();
$key = explode(",",$keywords);
$likesql = '';
$len =count($key);
for($i=0;$i<$len;$i++){
$now = $len-$i;
if($now==1){
$likesql .= "keywords like '%".$key[$i]."%' ";
}else{
$likesql .= "keywords like '%".$key[$i]."%' or ";
}
}
//关键字分割检索,拼接 查询语句
$getsql = "SELECT * from dede_archives where dede_archives.channel='-1'and $likesql order by dede_archives.id limit 0,4 ";
//查询与该文章关键字相同的专题
//echo $getsql;
$toback = '';
$dsql->Execute("m",$getsql);
while($row = $dsql->GetObject('m'))
{
$title = $row->shorttitle;
//专题短标题
$id = $row->id;
//专题ID
$url=GetOneArchive($id); //这个函数可以根据传进来的文档ID获取其URL地址
$aurl = $url['arcurl'];
$toback .= "<a href='".$aurl."' >".$title."</a>";
}
//print_r($toback);
//exit();
return $toback;
//返回文章链接
}
然后如果在内容页调用直接用:
{dede:field.keywords function='getlikespc(@me)'/}
列表和专题的节点一般用这样的格式调用:
[field:keywords function='getlikespc(@me)'/]