如何为织梦CMS网站添加相关文章栏目的高效方案?

织梦CMS增加相关文章栏目的新解决方案包括使用插件或自定义代码,通过关键词匹配、标签关联等方式实现文章推荐。

织梦CMS增加相关文章栏目的新解决方案

管理中,增加相关文章栏目能够显著提升用户体验,使用户更容易找到感兴趣的内容,织梦CMS(DedeCMS)作为一款功能强大的PHP开源CMS系统,其灵活的扩展性和丰富的模块功能使其成为众多网站管理员的首选,默认情况下,织梦CMS在相关文章栏目方面的表现并不理想,本文将介绍一种新方法,通过代码实现在文章内容页添加相关文章栏目,从而提升用户体验。

准备工作

在进行代码修改之前,请确保已经备份好当前的织梦CMS系统文件,以防止因操作失误导致的数据丢失,还需确保服务器具备PHP和MySQL运行环境,并且已安装织梦CMS。

代码实现步骤

1、在inc_functions.php文件中添加函数

打开inc_functions.php文件,该文件通常位于include目录下。

在文件末尾?>前添加以下代码:

“`php

//查询指定栏目里包含相应关键字的文章,并列出

function ShowKeyWordArc($showImg, $titleLen, $rowCount, $typeid, $keyWord) {

$dsql = new DedeSql(false);

$sql = TypeGetSunID($typeid, $dsql);

//关键字分词技术

$ks = explode(" ", $keyWord);

foreach ($ks as $k) {

$k = trim($k);

if ($k != "") {

$kwsqlarr[] = " (xkzzz_archives.title like ‘%$k%’) ";

//如果需要相关到其它文章的关键字,解除此行注释

//$kwsqlarr[] = " (xkzzz_archives.keywords like ‘%$k%’) ";

}

}

$where = implode(‘ OR ‘, $kwsqlarr);

$sql = "SELECT tp.namerule, tp.typedir, xkzzz_full_search.aid, xkzzz_full_search.url, xkzzz_archives.* FROM xkzzz_full_search LEFT JOIN xkzzz_archives ON xkzzz_full_search.aid = xkzzz_archives.ID LEFT JOIN xkzzz_arctype tp ON xkzzz_archives.typeid = tp.ID WHERE {$sql} AND ((xkzzz_archives.title LIKE ‘%" . $keyWord . "%’) OR $where) ORDER BY xkzzz_full_search.aid 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);

if ($showImg == 0) {

$ss = $ss . "<LI><a rel="nofollow noopener noreferrer" href=’" . $url . "’ target=_blank>";

if ($titleLen != 0) $ss = $ss . cn_substr($row>title, $titleLen);

else $ss = $ss . $row>title;

$ss = $ss . "</A></LI>";

} else {

$ss = $ss . "<LI><span class=’sjdqimggl’><a rel="nofollow noopener noreferrer" href=’" . $url . "’ target=_blank>";

if ($row>litpic != "") $ss = $ss . "<img src=’" . $row>litpic . "’ alt=" . $row>title . " />";

else $ss = $ss . "<img src=’/images/titl.gif’/>";

$ss = $ss . "</a></span><span class=’sjdqtxttl’><a rel="nofollow noopener noreferrer" href=’" . $url . "’ target=_blank>";

如何为织梦CMS网站添加相关文章栏目的高效方案?

if ($titleLen != 0) $ss = $ss . cn_substr($row>title, $titleLen);

else $ss = $ss . $row>title;

$ss = $ss . "</A></span></LI>";

}

$i++;

if (($rowCount != 0) && ($i >= $rowCount)) return $ss;

}

return $ss;

}

“`

2、在文章模板页内调用函数

打开需要添加相关文章栏目的文章模板页(通常是article_article.htm),在适当位置添加以下代码:

“`html

<!显示相关文章>

<ul>

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,"@me")’/}

</ul>

“`

以上代码表示取所有栏目内的相关文章(与当前文章的关键字相关),标题长度最大为32个字符,最多显示10条,不显示缩略图。

常见问题解答(FAQs)

1、Q: 如何在首页或其他页面调用相关文章?

A: 在其他页面调用相关文章时,可以在对应模板页中加入类似的标签调用,只需调整参数即可。

“`html

<!显示相关文章>

<ul>

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,"高三 语文")’/}

</ul>

“`

这段代码会找到标题中含有“高三 语文”或其单独关键词的文章。

2、Q: 如果我想限制只在某个特定栏目内显示相关文章,该如何修改代码?

A: 可以通过修改$typeid参数来指定特定栏目ID,如果只想在栏目ID为5的栏目内显示相关文章,可以将代码改为:

“`html

<!显示相关文章>

<ul>

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,5,"@me")’/}

</ul>

“`

这样就可以实现仅在指定栏目内显示相关文章的功能。

通过上述方法,织梦CMS可以实现在文章内容页添加相关文章栏目,从而提升用户体验和内容的关联性,希望本文的解决方案能对大家有所帮助。

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

(0)
未希的头像未希新媒体运营
上一篇 2024-09-30 15:52
下一篇 2024-09-30 15:54

发表回复

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

免费注册
电话联系

400-880-8834

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