我们在使用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)'/]