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