dede:likearticle文章標籤和tag標籤關聯錯誤怎麼辦?
織夢5.7有個dede:likearticle標記是用來文章的關聯,但是在使用的過程中,我們卻發現這個關聯實在是雞肋,作者卻發現,大家在使用織夢5.7搜尋的時候是不是還能勉強接受呢?作者就把dede的搜尋功能給替換到這個likearticle上,看樣子的確是好多了。
推薦學習:織夢cms
程式碼簡介
#作者把預設以keywords關鍵字來關聯文章改成以tags來關聯,並且加了一個判斷,在執行以tags的模糊查詢之後,如果查詢的資料為空的話,就直接再直接再次查詢本欄位下所有推薦的文章,這個比較好,就是保持著一直有回傳值。
作者考慮到有的文章沒有tags,而有的文章有tags卻沒有查詢到文章,所以就先判斷是否有tags如果沒有就直接查詢本欄位推薦文章,如果有tags標籤卻查詢到為空的文章那麼也傳回目前欄位下的推薦文章。
likearticle和tag標籤關聯解決方法/步驟
第1步:使用記事本或一些工具開啟「根目錄\include\taglib\likearticle.lib.php」此檔案。
第2步:搜尋“['keywords']”,全部替換成['tags']並儲存。
電腦互助網註;:
原程式碼55行:$keyword = ( !empty($refObj->Fields['keywords']) ? $refObj->Fields[ 'keywords'] : '' );
原始程式碼75行:if(!empty($refObj->Fields['keywords']))
#原始程式碼77行:$ keywords = explode(',' , trim($refObj->Fields['keywords']));
第3步:在87行下加上「$keyword .= $keyword=='' ? " CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP '($k)'": " OR CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP '($k)'"; ”
原始碼87行註銷://$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");
電腦互助網加入程式碼意思:原來的模糊查詢語句,作者在這裡多加了一個短標題也要查詢,不過我不喜歡用linke這個模糊查詢,所以在這裡換成REGEXP查詢。
第4步:在第107行下方新增以下程式碼並儲存。
程式碼如下:
/** 按tag标签关联文章内容 query2为备用,如果query为空的话,第二个就直接显示出来 */ $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row"; $typeids=$refObj->Fields['typeid'];//取出当前栏目ID $query2 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET('c', arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,$typeids,%' ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row"; /*query3是判断是否为空用的*/ $query3 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM dede_archives arc LEFT JOIN dede_arctype tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row";//这里的SQL具体按自己的数据库的表字段写吧,我这是直接写死了,哎没办法,能力有限。 /* 这里是判断tags标签查询的是否为空值,如果是空值,就全部使用推荐返回值,如果有值,就直接显示tags关联。 */ $result =mysql_query($query3);//query36判断专用的,主要是作者不会用SetQuery呀,郁闷。我是直接拼的SQL if(mysql_num_rows($result)<1){ $dsql->SetQuery($query2); }else{ $dsql->SetQuery($query); }
以下是原始碼101行到107全部登出的圖,按一下圖片查看大圖:
#以上程式碼意思:按tag標籤關聯文章內容query2為備用,如果按tags標記查詢的資料為空的話,第二個就可以用到了。
步驟5:在第原始碼117行下新增以下程式碼並儲存。
程式碼如下:
$typeids=$refObj->Fields['typeid'];//取出当前栏目ID $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET('c', arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,$typeids,%' ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row"; $dsql->SetQuery($query);
以下是原始碼111行到117全部登出的圖,按一下圖片查看大圖:
#以上程式碼意思:第5步查的是當tags標籤有內容時查的,第5步就是當tags標籤不為空時執行的SQL。
第6步:完成之後並上傳到空間,即可,作者就不示範程式碼後的效果了,如果非想看效果的話,看本文右側的相關文章就明白了。
筌於一些網友對SQL不敏感,可能會認為本文寫的一點都看不懂,自己也改不了,沒關係,這是下載地址:likearticle.lib.rar
以上是dede:likearticle文章標籤和tag標籤關聯錯誤怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver CS6
視覺化網頁開發工具

WebStorm Mac版
好用的JavaScript開發工具