在使用DEDECMS进行网站建设时,实现文章tag关键词自动生成列表页是一项非常实用的功能。这种方法不仅可以提升用户体验,还能优化搜索引擎抓取效果。以下是具体实现步骤。

一般来说,在DEDECMS中生成页面关键词列表有两种方法:一种是通过系统自带的tag.php调用并生成;另一种是我们接下来要介绍的生成列表页面的方法。

首先,利用“文档关键词维护 -> 分析系统内的关键字 -> 检测已有的关键字”功能,自动获取关键字链接网址。我们需要对dedearticle_keywords_make.php文件进行修改。找到该文件第80行,原始代码如下:


foreach($wsnew as $k=>$v)
{
if(strlen($k)>20)
{
continue;
}
$dsql->SetQuery("Insert Into `dede_keywords`(keyword,rank,sta,rpurl) Values('".addslashes($k)."','$v','1','')");
$dsql->Execute();
}
    

将其替换为以下代码:


foreach($wsnew as $k=>$v)
{
$rpurl="";
$myrow = $dsql->GetOne("SELECT distinct concat(replace(b.sitepath,'{cmspath}',''),'/',(case a.filename when '' then a.id else a.filename end),'.html') rpurl FROM dede_archives a,dede_arctype b where a.typeid=b.id And (a.keywords='$k' or a.keywords like'$k,%' or a.keywords like'%,$k'or a.keywords like'%,$k,%') ");
if(is_array($myrow))
{
// 注意:$GLOBALS['cfg_basehost'] 样式类似为 http://www.adminbuy.cn,后面没有反斜杠;
$rpurl = $GLOBALS['cfg_basehost'].trim($myrow['rpurl']);
}
$dsql->SetQuery("Insert Into `dede_keywords`(keyword,rank,sta,rpurl) Values('".addslashes($k)."','$v','1','$rpurl')");
$dsql->Execute();
}
    

接着,在templetsdefault目录下新建一个名为keywords.htm的模板文件(如果已经自定义了模板路径,请选择对应的目录)。将keywords.html模板页面的源码保存为以下代码:


{dede:sql sql='Select * from dede_keywords order by aid}
[field:aid/] – '[field:rpurl/]' target='_blank'>[field:keyword/]
{/dede:sql}
    

进入DedeCms后台管理界面后,按照以下步骤操作:

生成 -> HTML更新 -> 更新主页HTML,进入“主页更新向导”页面:

  • 设置“选择主页模板”为“default/keywords.htm”;

  • 设置“主页位置”为“../keywords.html”;

  • 设置“相关选项”为“不保存当前选项”;

最后点击“预览主页”或“更新主页HTML”,即可生成“DedeCms文档关键词列表页”。

希望上述内容能对大家在使用DEDECMS建站时有所帮助。