一、修改inc_functions.php文件
在DEDECMS中,通过修改inc_functions.php
文件可以实现根据关键字搜索相关文章的功能,具体步骤如下:
1、inc_functions.php
文件。
2、添加新函数:在文件的最后?>前添加以下代码:
//查询指定栏目里包含相应关键字的文章,并列出 //参数说明:$showImg 是否显示缩略图,0表示不显示,1表示显示 // $titleLen 标题长度,0表示无限 // $rowCount 输出行数,0表示无限 // $typeid 栏目ID,0表示所有栏目 // $keyWord 关键字,字符串 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[] = " (dede_archives.title like '%$k%') "; //$kwsqlarr[] = " (dede_archives.keywords like '%$k%') "; //如果需要相关到其它文章的关键字,解除此行注释 } } $where = implode(' OR ', $kwsqlarr); $sql = "Select tp.namerule, tp.typedir, dede_full_search.aid, dede_full_search.url, dede_archives.* From dede_full_search left join dede_archives on dede_full_search.aid=dede_archives.ID left join dede_arctype tp on dede_archives.typeid=tp.ID where {$sql} and ((dede_archives.title like '%".$keyWord."%') or $where) order by dede_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 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 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 href='" . $url . "' target=_blank>"; 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; }
3、应用函数:将上述函数应用到文章模板页内,可以在模板中使用以下代码来调用该函数:
{dede:field name='keywords' function='ShowKeyWordArc(0,32,10,0,"@me")'/}
这段代码表示取所有栏目内的相关文章(与当前文章的关键字相关),标题长度最大为32,最多显示10条,不显示缩略图。
禁止发布相同文章
除了上述方法,还可以通过修改article_add.php
文件来禁止发布相同标题的文章,具体步骤如下:
1、dede/article_add.php
文件。
2、添加禁止发布相同文章的代码:在文件中适当的位置添加以下代码:
if ($cfg_mb_cktitle == 'Y') {
$row = $dsql>GetOne("Select * Frominyhow_archives
where title like '$title' ");
if (is_array($row)) {
ShowMsg("亲,很抱歉,请不要发布重复文档!", "1");
exit();
}
}
通过上述代码修改,即可禁止织梦DEDECMS发布相同标题的文章,从而避免文章内容不相关的问题。
FAQs常见问题解答
1、如何确保生成的相关文章与当前文章相关?
回答:可以通过修改inc_functions.php
文件并使用ShowKeyWordArc
函数来实现,该函数会根据当前文章的关键字搜索相关文章,确保生成的相关文章与当前文章相关,可以在模板中使用{dede:field name='keywords' function='ShowKeyWordArc(0,32,10,0,"@me")'/}
等代码来调用该函数。
2、如何禁止发布相同标题的文章?
回答:可以通过修改article_add.php
文件来实现,在文件中适当的位置添加禁止发布相同文章的代码,如if ($cfg_mb_cktitle == 'Y') {...}
,即可防止用户发布相同标题的文章,从而避免文章内容不相关的问题。
【DEDECMS相关文章不相关的解决办法】
问题
DEDECMS(帝国CMS)是一款功能强大的内容管理系统,但在实际使用过程中,可能会遇到文章内容不相关的问题,这可能是由于以下原因造成的:
1、文章分类错误;
2、文章内容与分类不符;
3、文章标签使用不当;
4、系统设置错误;
5、数据库错误。
解决办法
以下是对上述问题的详细解答及解决步骤:
1、文章分类错误
解决步骤:
1. 登录后台管理界面。
2. 进入“文章管理”模块。
3. 找到不相关的文章。
4. 点击文章,进入编辑页面。
5. 将文章分类调整到正确的分类。
6. 保存文章。
2、与分类不符
解决步骤:
1. 重新编辑文章内容,确保内容与分类相符。
2. 修改文章标题和摘要,使其与文章内容一致。
3. 更新文章标签,确保标签与文章内容相关。
3、文章标签使用不当
解决步骤:
1. 清理或删除与文章内容不相关的标签。
2. 为文章添加新的、相关的标签。
3. 检查标签库,确保所有标签的准确性。
4、系统设置错误
解决步骤:
1. 登录后台管理界面。
2. 进入“系统设置”模块。
3. 检查文章分类、标签、模板等设置是否正确。
4. 根据需要调整设置,确保系统正常运行。
5、数据库错误
解决步骤:
1. 进入后台管理界面。
2. 进入“系统维护”模块。
3. 执行数据库优化和修复操作。
4. 检查数据库中的文章数据,确保没有错误。
预防措施
为了防止类似问题的再次发生,可以采取以下预防措施:
1、定期检查文章分类、标签等设置。
2、对文章进行质量审核,确保内容与分类相符。
3、培训编辑人员,提高其对分类和标签的使用准确性。
4、定期备份数据库,以防数据丢失或损坏。
通过以上步骤,可以有效解决DEDECMS中文章不相关的问题,确保网站内容的准确性和一致性。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。