首頁 CMS教程 DEDECMS 怎麼解決dede:arclist keyword的相關問題

怎麼解決dede:arclist keyword的相關問題

Jan 13, 2020 am 09:46 AM
dede

怎麼解決dede:arclist keyword的相關問題

怎麼解決{dede:arclist keyword='動態取得關鍵字'}?

解決{dede:arclist keyword='動態取得關鍵字'}

推薦學習:織夢cms

最近修改模版,為了讓相關文章的相關度更高,打算優化一下,不過會增加生成頁時間,如果不經常更新倒是不錯的

  

最近在做一個站,想做一個功能,就是有一個div區塊裡顯示的是與目前文章關鍵字相同的文章的標題。開始的時候是這樣寫的

{dede:arclist keyword='{dede:field name='keyword'}'}結果一定是不行的。 。 。 。在網路上找也沒找到。於是就自己唸程式碼,自己寫了個簡單處理的。

在arclist.lib.php 第149行

程式碼如下:

//关键字条件 
if($keyword!='')
登入後複製

把{}中間的內容改成 

{ 
$rowGetKeyword = $dsql->GetOne("select keywords From `dede_archives` where id='$arcid'"); 
$keyword=$rowGetKeyword['keywords']; 
$keyword = str_replace(',', '|', $keyword); 
$orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '$keyword' "; 
}
登入後複製

這樣直接呼叫{ dede:arclist keyword='這裡隨便寫只要是不為空就可以'} 這樣這裡的keyword就是動態取得的了。不然只能是固定的。 

就在剛剛我發文之前看到dede5.6裡有個標籤 

{dede:likeart titlelen='' row=''}
{/dede:likeart}
登入後複製

這個標籤還沒測試,不過應該就是這個功能。如果不是,大家就一用我上面的方法。測試過了,可以用。

DEDECMS相關文章以關鍵字相關的修改方法 

DEDE的相關文章完全不相關,有朋友在DEDE官方放出根據TAG顯示相關文章,也是很不錯,可惜我在根據那邊文章改DEDE程式碼後老是不行,可能是能力有限,當然也有可能是程式碼有問題

現在終於出了解決方法:

1 在inc_functions.php 最後?> ;前加上

程式碼如下:

//查询指定栏目里包含相应关键字的文章,并列出 
//参数说明:$showImg 是否显示缩略图,0表示不显示,1表示显示 
// $titleLen 标题长度,0表示无限 
// $rowCount 输出行数,0表示无限 
// $typeid 栏目ID,0表示所有栏目 
// $keyWord 关键字,字符串 
function ShowKeyWordArc($showImg,$titleLen,$rowCount,$typeid,$keyWord){ 
$dsql = new DedeSql(false); 
$sql = TypeGetSunID($typeid,$dsql); </p> <p>//关键字分词技术 
$ks = explode(" ",$keyWord); 
foreach($ks as $k){ 
$k = trim($k); 
if ($k!="") { 
$kwsqlarr[] = " (xkzzz_archives.title like &#39;%$k%&#39;)"; 
//$kwsqlarr[] = " (xkzzz_archives.keywords like &#39;%$k%&#39;) "; //如果需要相关到其它文章的关键字,解除此行注释 
} 
} 
$where = implode(&#39; OR &#39;,$kwsqlarr); </p> <p>$sql="Select tp.namerule,tp.typedir,xkzzz_full_search.aid,xkzzz_full_search.url,xkzzz_archives.* From xkzzz_full_search left join xkzzz_archives on xkzzz_full_search.aid=xkzzz_archives.ID left join xkzzz_arctype tp on xkzzz_archives.typeid=tp.ID where {$sql} and ((xkzzz_archives.title like &#39;%".$keyWord."%&#39;) or $where) order by xkzzz_full_search.aid 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); 
if ($showImg==0){ 
$ss=$ss."<LI><a href=&#39;".$url."&#39; target=_blank>"; 
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); 
else $ss=$ss.$row->title; 
$ss=$ss."</A></LI>"; 
}else{ 
$ss=$ss."<LI><span class=&#39;sjdqimggl&#39;><a href=&#39;".$url."&#39; target=_blank>"; </p> <p>if ($row->litpic!="") $ss=$ss."<img src=&#39;".$row->litpic."&#39; alt=&#39;".$row->title."&#39; />"; 
else $ss=$ss."<img src=&#39;/images/titl.gif&#39;/>"; 
$ss=$ss."</a></span><span class=&#39;sjdqtxttl&#39;><a href=&#39;".$url."&#39; target=_blank>"; 
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); 
else $ss=$ss.$row->title; 
$ss=$ss."</A></span></LI>"; 
} 
$i++; 
if (($rowCount!=0)&&($i>=$rowCount)) return $ss; 
} 
return $ss; 
}
登入後複製

2 放在文章範本頁內

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}
登入後複製

就表示是取所有欄位內的相關文章(與目前文章的關鍵字相關),標題長度最大32,最多顯示10條,不顯示縮圖

或 

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三 语文”)’/} 
可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章
登入後複製

例如,這一段:

相关文章 
{dede:likeart titlelen=’24′ row=’10′}
[field:textlink/]< > 
{/dede:likeart}
登入後複製

就改成:

相关文章 
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}
登入後複製

申明:這個函數不是我寫的 

根據關鍵字來相關文章,就使用者體驗以及SEO來說都是非常好的 

但是唯一不好的地方就是生成靜態的時候會慢很多,哈哈,伺服器又要辛苦了

以上是怎麼解決dede:arclist keyword的相關問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)