DedeCMS 默认是以关键词匹配相关文章,每篇文章的关键词都不同的话是很难匹配到文章的,但是问题来了,大量重复的关键词从网站关键词排名优化的角度看又会造成网站内部竞争,几十甚至上百个页面关键词都是相同的,对于优化来说结果会怎样大家可以自己分析一下。

DedeCMS按tag调用相关文章

所以用TAG匹配相关文章对于网站优化要更合理一些,在不影响文章关键词的情况下,可以为一些内容相关的文章设置相同的TAG标签,这样就可以实现让一些内容相关的文章匹配到一起。介绍方法:

1、将以下代码放入include/common.func文件最后的 ?> 内

//按TAG调用相关文章
function ShowTagLikeArc_by_id($titleLen,$rowCount,$typeid,$aid){
global $dsql;
if ($typeid!="0") $sql = TypeGetSunID($typeid,$dsql);
else $sql =" 1=1 ";

//找到所有的tag id
$query="Select tid from #@__taglist where aid=$aid";
$dsql->SetQuery($query);
$dsql->Execute();
while($row=$dsql->GetObject()){
$kwsqlarr[] = " (tl.tid='".$row->tid."') ";
}
$where = implode(' OR ',$kwsqlarr);
if (trim($where)=="") $where=" 1<>1 ";
$sql="Select DISTINCT tp.namerule,tp.typedir,#@__archives.* From #@__taglist tl left join #@__archives on tl.aid=#@__archives.id left join #@__arctype tp on #@__archives.typeid=tp.id where {$sql} and ( $where) and #@__archives.ID<>$aid order by #@__archives.litpic desc,#@__archives.click desc"; //排序按有缩略图、点击率高的排名靠前。
$dsql->SetQuery($sql);
$dsql->Execute();
$ss="";
$i=0;
while($row=$dsql->GetObject()){
$url=GetFileUrl($row->id,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money);
$ss=$ss."<li><a href='你的域名".$url."' title='".$row->title."'>";
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
else $ss=$ss.$row->title;
$ss=$ss."</a></li>";
$i++;
if (($rowCount!=0)&&($i>=$rowCount)) return $ss;
}
if ($ss=="") $ss="暂无相关文章";
return $ss;
}

2、在文章内容页模板(通常是article_article.htm)里,加入调用此函数的标签:

{dede:field.id function='ShowTagLikeArc_by_id(100,5,0,@me)' /}

标签的含义:从所有栏目里,查找与本篇文章tag相同的文章,一共显示5条,标题最长为100个字;如果只想从某个栏目匹配相关文章,则把0改为你想指定的栏目ID,如想匹配ID为1的栏目,则写成100,5,1

实现效果-TAG为“新闻稿”的相关文章

(实现效果-TAG为“新闻稿”的相关文章)

本文由SUNSEO原创编辑,转载请注明来源及版权归属。

标签:



发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注