新版的織夢dedecms5.7相關文章標簽有兩個問題.1、相關文章文章調只調用當前欄目的,其他欄目的調用不到2、只能匹配其他文章的標題(title),和關鍵詞(keywords),沒有去匹配其他文章tag修改dedecms(5.7)likearticle.lib.php相關文章標簽調用全站相關文章打開likearticle.lib.php(請事先備份),查找:$query = "
在其上方添加:$typeid = ' AND arc.id<>$arcid '; 注意有兩處,AND arc.id<>$arcid這個的意思就是限制調用出來的相關文章不包含本文章,記的dedecms7.0之前沒有做 這個限制-_-,這樣就取消了相關文章匹配欄目的限制了。dedecms相關文章調用tag、關鍵詞(keywords)、標題(title)相同的文章
dedecms官方的相關文章標簽并沒有匹配tag相同的文章,他只是獲取當前文章的tag和關鍵詞(keywords)去匹配其他文章的標題(title)、關鍵詞(keywords) 請看dede的源碼片斷if(!empty($refObj->Fields['keywords'])){$keywords = explode(',' , trim($refObj->Fields['keywords']));$keyword = '';$n = 1;foreach($keywords as $k){if($n > 3) break;if(trim($k)=='') continue;else $k = addslashes($k);$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " ORCONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");$n++;}}$arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0);if( empty($arcid) || $byabs==0 ){$orderquery = " ORDER BY arc.id desc ";}else {$orderquery = " ORDER BY ABS(arc.id - ".$arcid.") ";}if($keyword != ''){if(!empty($typeid)) {$typeid = " AND arc.typeid IN($typeid) AND arc.id<>$arcid ";}$query = "SELECTarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathFROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.idwhere arc.arcrank>-1 AND ($keyword) $typeid $orderquery limit 0, $row";}else{if(!empty($typeid)) {$typeid = " arc.typeid IN($typeid) AND arc.id<>$arcid ";}$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathFROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.idWHERE arc.arcrank>-1 AND $typeid $orderquery limit 0, $row";}注意以上綠色內容就是一部分匹配條件 ,$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");可以看出dedecms只CONCAT了keywords和title,沒有做tag的處理 。