织梦调用相关文章时,likearticle不能排除当前文章的解决方案

优采云 发布时间: 2020-08-06 18:14

  通常,当我们发布文章时,为了增加用户的停留时间,我们将在文章末尾或适当位置调用与该文章相关的文章,以再次赢得用户的点击. 在dedecms(V5版本.7)中,在调用类似文章时,实际的调用代码为{dede: likearticle}. 该代码的原理是通过识别文章的标题,类别,关键字等来提出建议,以判断相似性. 后台调用代码如下/include/taglib/likearticle.lib.php,打开文件并找到以下代码:

  / ************************************************** ****************************************************** **** /

  if($ keyword!='')

  {

  if(!empty($ typeid)){

  $ typeid =“ AND arc.typeid IN($ typeid)AND arc.id'$ aid'”;

  }

  $ 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`弧LEFT JOIN`dede_arctype` tp ON arc.typeid = tp.id

  其中arc.arcrank> -1AND($ keyword)$ typeid $ orderquery limit 0,$ row“;

  }

  其他

  {

  if(!empty($ typeid)){

  $ typeid =“ arc.typeid IN($ typeid)AND arc.id'$ aid'”;

  }

  $ 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`弧LEFT JOIN`dede_arctype` tp ON arc.typeid = tp.id

  WHERE arc.arcrank> -1AND $ typeid $ orderquery limit 0,$ row“;

  }

  / ************************************************** *************************************************** / <//p

p从上面的代码中,我们可以看到dedecms试图在程序开始时对文章进行过滤以排除该文章(AND arc.id'$ aid'“),但失败了. 如何成功排除这很简单. 我们可以在此代码中再次将其排除: AND($ keyword)$ typeid. 必须添加这两个代码. 修改完成后,以下是以下内容(请注意区别)之间的绿色粗体代码):/p

p/ ************************************************** ****************************************************** **** //p

pif($ keyword!='')/p

p{/p

pif(!empty($ typeid)){/p

p$ typeid =“ AND arc.typeid IN($ typeid)AND arc.id'$ aid'”;/p

p}/p

p$ query =“ SELECT arc. *,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,/p

ptp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath/p

pFROM`dede_archives`弧LEFT JOIN`dede_arctype` tp ON arc.typeid = tp.id/p

p其中arc.arcrank> -1AND($ keyword)$ typeidAND arc.id'$ aid'$ orderquery limit 0,$ row“;

  }

  其他

  {

  if(!empty($ typeid)){

  $ typeid =“ arc.typeid IN($ typeid)AND arc.id'$ aid'”;

  }

  $ 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`弧LEFT JOIN`dede_arctype` tp ON arc.typeid = tp.id

  WHERE arc.arcrank> -1AND $ typeidAND arc.id'$ aid'$ orderquery limit 0,$ row“;

  }

<p>/ ************************************************** *************************************************** /

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线