在织梦模板网给用户制作织梦模板的时候,经常有用户为了增加网站粘性,要求武林网小编在网站栏目和内容页面增加一些相关栏目和相关文章的推荐。做过织梦模板的站长可能都了解,织梦DEDECMS可以通过likearticle标签的调用来实现,但我们发现在使用likearticle标签在实现文档关联时,
只能调用当前栏目(包括顶级栏目下的下级栏目)的文档,其他栏目的相关文章确实不能被调用显示,那么我们如何来实现关联网站的所有文档呢?下面织梦模板网小编给出解决方法。
实现方法
打开/include/taglib/likearticle.lib.php文件,找到如下代码:
if(!emptyempty($refObj->Typelink->TypeInfos['reid'])) { $typeid = $refObj->Typelink->TypeInfos['reid'];}
将其替换为如下代码:
if($typeid == '0'){ $typeid = ''; } else if(!emptyempty($refObj->Typelink->TypeInfos['reid'])) { $typeid = $refObj->Typelink->TypeInfos['reid']; }
保存后即可。
通过这样的修改以后,相关文档的调用就会默认索引所有的文档了。
这里需要给大家纠正一下,在相关文档标签里,限制调用栏目的参数为 mytypeid 而不是 typeid,希望大家要注意。
下面织梦模板网给出代码解释
我们增加的实际核心代码为:
if($typeid == '0'){ $typeid = ''; }
它的意思是,如果typeid传来的值等于0,那么就将变量$typeid为空。而索引$typeid变量是在下面SQL语句里:
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 arc.arcrank>-1 and ($keyword) $typeid $orderquery limit 0, $row
而这里的$typeid变量也是在上一行的
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
中进行赋值。那么我们将这个$typeid 变量是事先就判断并赋值为空以后,一切的问题就自燃迎刃而解了。有兴趣的朋友可以自己亲自动手尝试看看效果。
以上就是织梦模板实现likearticle关联网站的所有文档的方法的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持武林网。新闻热点
疑难解答