dedecms动态调用相关文章默认有两种方法可以实现(组图)

dedecms 动态调用当前文章的关键词代码中找不到关键词,获取全站包含相同关键词的文章。关联后,只要包含相同关键词的文章都会显示为相关文章,这样非常有利于SEO优化,最大限度的提升文章的效果。内容的相关性,想法很简单但实施起来并不容易。经过多次失败的调用,我终于找到了一个可用且成功的方法。

dedecms默认有两种根据关键词调用相关文章的方法。一种是使用likearticle标签,但是这个标签有问题。我尝试了各种方法,但没有调出我想要的数据;二是使用{dede:arclist row=’10’ titlelen=’50’keyword=’SEO优化,百度seo’}这个标签,直接填写你要调用的关键词,比如可以调用“SEO优化和百度seo”在这里。有两个关键词的文章,由于这里的关键词是硬编码的,显然不是我想要的结果。

如果这里的关键词换成当前文章的关键词动态调用,调用出来的数据肯定是符合要求的,但是很多方法都测试过了。它不是基于关键字。

这个功能还是可以实现的。经过多次尝试,终于实现了这个功能。因此,在互联网上并没有真正正确的实现方式。既然大家都需要,那我就分享一下实现方法。

01 修改dedecms后台代码

打开/include/taglib/arclist.lib.php,找到代码“$innertext = trim($innertext);”,在这段代码的上一行添加如下代码。

//动态关键字调用 preg_match(“/~([A-Za-z0-9_]+)~/s”, $keyword, $conditions);if(isset($refObj->Fields[$conditions[1] ] )){$keyword = addlashes($refObj->Fields[$conditions[1]]);}//动态关键字调用结束

后台代码只需要添加这个地方,其他的不需要修改。

02 前端模板调用方法

使用以下代码在模板文件中调用,打开/templets/default/article_article.htm模板文件,使用以下代码调用相关文章。

图片[1]-dedecms动态调用相关文章默认有两种方法可以实现(组图)-老王博客

{dede:arclist titlelen=’120′ row=’20’ typeid=’2,6,15,16,19,22,21’keyword=’~keywords~’ orderby=’rand’}

[字段:标题/]

{/dede:arclist}

其中,keyword=’~keywords~’为当前文章页面的关键字。如果你想调用标题~title~等,根据你当前页面的标签填写字段。如果只调用当前文章分类下具有相同关键字的文章代码中找不到关键词,可以删除typeid;如果需要在全站调用相同关键词的文章,需要加上最终分类的分类id,并用英文逗号分隔多个分类id。

支持orderby排序,dedecms标签arclist支持的所有属性都支持,唯一的缺点是调用全站包含相同关键词的相关文章时,需要填写typeid,有点烦人,不过这种方法可以完美实现功能,一个网站的分类是有限的。就算有20个分类页面,也不是问题,总比调不出来数据,数据错了要好。

这样做的好处是对SEO优化非常有好处。我们都知道,内容的相关性对于提高页面的排名非常有帮助。如果一篇文章的内容与体育有关,那么相关文章中传输的数据就是美食内容,这是完全不相关的内容,用户体验不好。

使用上述方法调用相关文章需要注意:如下图,发表文章时,“关键词”必须填写,不能留空。没有相关文章。

Dedecms发表文章并填写关键词

如果全站文章的“关键词”没有填写,可以将调用代码中的关键词~keywords~改为~title~,这样即使tag和keyword为空,也可以调用相关满足您需求的文章。

以上是动态使用当前文章关键词,将文章与全站或当前分类中的相同关键词进行关联。方法还是很简单的,亲测有效。更多关于dedecms系统的SEO优化和模板设计的文章会持续分享。欢迎关注。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论