DEDE文章裏,不少人都是隻填了TAG,而沒有填寫關鍵字,更不要說手動去設置其相關文章了。php
因此,就但願有一個功能,能夠列出當前文章的按TAG進行相關匹配的文章,做爲其相關文章。html
例如:A文章的tag是「證券 金融 次貸」,B文的TAG是「美女 時尚」,C文的TAG是「美女 次貸」,D文的tag是「證券 貶值」,那麼A文章用次此修改後獲得的相關文章就是C和D,B文的相關文章是C,C文的相關文章是A和B,D文相關文章是Asql
修改方法爲如下兩步(已在DEDE5.1 GBK版上調試經過,若是你是要修改UTF-8版本,切記不要用記事本打開DEDE自帶的文件):函數
第一步:在include\inc_functions.php文件的最後?>以前,插入如下函數代碼學習
function ShowTagLikeArc_by_id($titleLen,$rowCount,$typeid,$aid){google
$dsql = new DedeSql(false);url
if ($typeid!="0") $sql = TypeGetSunID($typeid,$dsql);調試
else $sql =" 1=1 ";htm
//找到全部的tag id排序
$query="Select tid from #@__tag_list where aid=$aid";
$dsql->SetQuery($query);
$dsql->Execute();
while($row=$dsql->GetObject()){
$kwsqlarr[] = " (tl.tid='".$row->tid."') ";
}
$where = implode(' OR ',$kwsqlarr);
if (trim($where)=="") $where=" 1<>1 ";
$sql="Select DISTINCT tp.namerule,tp.typedir,#@__archives.* From #@__tag_list tl left join #@__archives on tl.aid=#@__archives.ID left join #@__arctype tp on #@__archives.typeid=tp.ID where {$sql} and ( $where) and #@__archives.ID<>$aid order by #@__archives.litpic desc,#@__archives.click desc"; //排序按有縮略圖、點擊率高的排名靠前
$dsql->SetQuery($sql);
$dsql->Execute();
$ss="";
$i=0;
while($row=$dsql->GetObject()){
$url=GetFileUrl($row->ID,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money);
$ss=$ss."<li><a href='".$url."' title='".$row->title."'>";
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
else $ss=$ss.$row->title;
$ss=$ss."</A></LI>";
$i++;
if (($rowCount!=0)&&($i>=$rowCount)) return $ss;
}
if ($ss=="") $ss="暫無相關文章";
return $ss;
}
第二步:在文章內容頁模板(一般是article_article.htm)裏,加入調用此函數的標籤:
例如:{dede:field name='ID' function='ShowTagLikeArc_by_id(20,10,0,@me)' /}
這個標籤的意思就是:從全部欄目裏,查找本篇文章的tag相關文章,一共找10條,標題顯示最長爲20個字
又如:{dede:field name='ID' function='ShowTagLikeArc_by_id(0,0,2,@me)' /}
這個標籤的意思就是:從ID爲2欄目及其全部子欄目裏,查找本篇文章的tag相關文章,不限制文章數量,標題顯示不限字數
附註:
1 生成出來的相關文章HTML形如:
<li><a href="/html/xxxx/CCC.html" title="C文標題">C文標題</a></li>
<li><a href="/html/xxxx/dddd.html" title="D文標題">D文標題</a></li>
若是你的模板有樣式方面的要求,可自行調整代碼裏的<li>部分
2 目前獲得的相關文章,是按有縮略圖且點擊率高的拍列靠前,如需有本身的排序要求,請修改代碼裏的order by #@__archives.litpic desc,#@__archives.click desc部分,不懂的請查閱跟帖或跟貼提問,其餘網友代爲回答,我將給予必定熱心助人獎勵
—————————————————————————————————————————————————
舒適提示:
* 模板文件一般在template/default目錄裏,文章頁的模板叫article_article.htm,且本拓展修改的標籤,只能放在文章內容頁。
* 本修改,須要具有必定的模板和HTML的基礎知識,若是徹底沒有這些基礎知識,在修改模板使用標籤時會遇到必定困難,請不要使用QQ問我,由於我也很難幫助你,也沒有足夠的時間幫助你,這就比如小學生遇到初中題目同樣,須要你本身把基礎知識進行學習和摸索
* 具體的模板和HTML的知識,屬於編輯模板的基礎知識,最好仍是自學一下,多看DEDE自帶的模板、DEDE模板及標籤的幫助文件、HTML基本概念、CSS的知識、善用論壇搜索和百度google,多掌握一點,對你本身的站長生涯也有好處。
* 有問題,請先翻看前面的跟貼是否已解決,或跟帖詳細描述,入門級問題我通常就不做回答了,若是你本身摸索了2個星期,又實在很想用這個代碼,能夠來找我,但千萬別一遇到問題就問,由於我實在沒有足夠的精力回答全部問題,見諒!
* 若是有特殊要求的,或者DEDE是特殊狀況的(如版本不一樣、有特殊設置、修改過代碼的),或者實在沒有任何HTML、模板、PHP方面的知識但又很想使用這個的,能夠聯繫我進行定製。