如何有效利用dedecms中的文章标签匹配功能来增强站点的关键词、标题和全站相关文章的调用效率?

DEDECMS中,通过标签、关键词或标题匹配相关文章并调用全站相关内容,可以使用内置函数和标签实现。

在DedeCMS中,相关文章的标签匹配和调用是网站SEO优化的重要组成部分,通过合理配置和使用标签,可以显著提升网站的用户体验和搜索引擎排名,本文将详细介绍如何通过Tag、关键词、标题来匹配相关文章,并调用全站相关文章的方法。

如何有效利用dedecms中的文章标签匹配功能来增强站点的关键词、标题和全站相关文章的调用效率?

DedeCMS默认相关文章标签

DedeCMS默认自带的相关文章标签是likearticle,然而在实际应用中,这个标签的调用效果并不完美,通常只能调用当前栏目的文章,并且仅能匹配文章的标题(title)和关键词(keywords),而无法匹配其他文章的tag,为了改进这一情况,需要对代码进行一些调整。

实现全站按TAG和关键字调用相关文章

可以通过修改include/taglib/likearticle.lib里的代码来实现全站按TAG和关键字调用相关文章,具体方法如下:

1、替换include/taglib/likearticle.lib里的代码

将以下PHP代码保存到文章模板的适当位置:

“`php

<?php

if(!’);

/

按关键词关连文章的标签

eregtype属性

eregtype = keyword 只匹配关键字

eregtype = tag 只匹配tag

eregtype = all tag优先,不存在tag则匹配关键字

mytypeid=” 栏目ID,多个栏目用,隔开

*/

function lib_likearticle(&$ctag,&$refObj)

{

global $dsql;

//属性处理

$attlist="row|12,titlelen|28,infolen|150,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90";

FillAttsDefault($ctag>CAttribute>Items,$attlist);

extract($ctag>CAttribute>Items, EXTR_SKIP);

$revalue = ”;

if(empty($tablewidth)) $tablewidth = 100;

if(empty($col)) $col = 1;

$colWidth = ceil(100/$col);

$tablewidth = $tablewidth."%";

$colWidth = $colWidth."%";

$ids = array();

$tids = array();

$typeid = ( !empty($mytypeid) ? $mytypeid : 0 );

if(empty($typeid))

{

if(!empty($refObj>Typelink>TypeInfos[‘reid’])) {

$typeid = $refObj>Typelink>TypeInfos[‘reid’];

} else {

if(!empty($refObj>Fields[‘typeid’])) $typeid = $refObj>Fields[‘typeid’];

}

}

if( !empty($typeid) && !ereg(‘,’, $typeid) ) {

$typeid = GetSonIds($typeid);

}

if(!empty($refObj>Fields[‘tags’]) && $eregtype != ‘keyword’ )

{

$tags = explode(‘,’, addslashes($refObj>Fields[‘tags’]));

$getsql = " tag like ‘".join("’ OR tag like ‘", $tags)."’ ";

$dsql>Execute(‘me’, "Select * Fromdede_tagindex where $getsql ");

如何有效利用dedecms中的文章标签匹配功能来增强站点的关键词、标题和全站相关文章的调用效率?

while($arow = $dsql>GetArray(‘me’)) {

$tids[] = $arow[‘id’];

}

$tid = join(‘,’, $tids);

if($tid!=”)

{

$dsql>Execute("me", "Select aid Fromdede_taglist where tid in($tid) And arcrank > 1 group by aid order by aid desc limit 0, $row");

while($arow = $dsql>GetArray("me"))

{

$ids[] = $arow[‘aid’];

}

}

}

if($eregtype == ‘tag’ && count($ids) == 0 )

{

return ”;

}

else

{

if(count($ids) > 0)

{

if(!empty($typeid)) {

$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";

}

$idsStr = join(‘,’, $ids);

$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

fromdede_archives arc left joindede_arctype tp on arc.typeid=tp.id

where arc.id in($idsStr) $typeid order by arc.id desc";

}

else

{

$limitRow = $row count($ids);

$keyword = ”;

if(!empty($refObj>Fields[‘keywords’]))

{

$keywords = explode(‘,’, addslashes($refObj>Fields[‘keywords’]));

$getsql = " title like ‘%".join("%’ OR title like ‘%", $keywords)."%’ ";

$dsql>Execute(‘me’, "Select * Fromdede_archives where $getsql and len(title)>2 ");

while($arow = $dsql>GetArray(‘me’)) {

$ids[] = $arow[‘id’];

}

}

if(count($ids) > 0) {

$idsStr = join(‘,’, $ids);

$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

fromdede_archives arc left joindede_arctype tp on arc.typeid=tp.id

where arc.id in($idsStr) order by arc.id desc";

如何有效利用dedecms中的文章标签匹配功能来增强站点的关键词、标题和全站相关文章的调用效率?

} else {

return ”;

}

}

}

if(!empty($query)) {

$dsql>ExecuteNoneReturn($query,"me");

$result = $dsql>GetOne("me");

while($result = $dsql>GetArray("me")) {

$revalue .= preg_replace(‘/([field:titlefunc])/’,”,$result[‘title’]);

$revalue .= ‘<br />’;

if(strlen($revalue) >= $row) break;

}

}

return $revalue;

}

“`

这段代码实现了按TAG和关键字匹配相关文章的功能,并且可以根据需要调整优先级。

使用新版DedeCMS调用全站相关文章

对于新版DedeCMS(如5.7版本),可以通过以下步骤实现全站调用相关文章:

1、保存代码到文章模板的适当位置

“`php

<div class="xgwz">

<dl class="tbox">

<dt><strong>相关文章</strong></dt>

<dd>

<ul class="c1 ico2">

{dede:likearticle col=’2′ row=’10’ titlelen=’42’ eregtype=all|tag|keyword}

<li><a href="[field:arcurl/]">[field:title/]</a></li>

{/dede:likearticle}

</ul>

</dd>

</dl>

</div>

“`

这段代码可以在文章模板中插入相关文章列表,显示数量和列数可以根据需求调整。

相关问答FAQs

Q1: 如何确保相关文章的准确性和相关性?

A1: 确保相关文章的准确性和相关性,可以通过以下几点实现:

1、精确的标签和关键词:确保每篇文章的标签和关键词设置准确,避免模糊和不准确的标记。

2、定期检查和更新:定期检查和更新文章内容及其标签、关键词,确保其与最新内容保持一致。

3、多样化匹配方式:结合使用Tag和关键词匹配,提高匹配的全面性和准确性。

4、用户反馈:收集用户反馈,根据用户需求不断优化相关文章的推荐算法。

Q2: 如何在DedeCMS中实现相关文章的分页显示?

A2: 在DedeCMS中实现相关文章的分页显示,可以通过修改模板代码来实现,可以在模板文件中添加分页功能的相关代码:

{dede:pagelist listitem="info,index,end,pre,next,head,tail" listsize="5"/}

这段代码会在相关文章列表下方生成分页导航,用户可以通过点击分页按钮查看更多相关文章。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1115542.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-01
下一篇 2024-10-01

发表回复

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

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入