DEDECMS实现文章tag关键词自动生成列表页 – DeDecm


avatar
pcwnas 2023-04-21 209

原文来自:https://www.zixuephp.com

DEDECMS实现文章tag关键词自动生成列表页

在dedecms中如果要页面关键词生成列表有两种办法一种就是使用dedecms自带的tag.php调用并生成,另一种是就是我们要介绍的生成列表页面方法。

一、利用 文档关键词维护->分析系统内的关键字->检测已有的关键字 功能,自动获取关键字链接网址,修改如下:找到 dedearticle_keywords_make.php 80行,代码如下:

  1. foreach($wsnewas$k=>$v)
  2. {
  3. if(strlen($k)>20)
  4. {
  5. continue;
  6. }
  7. $dsql->SetQuery("InsertInto`dede_keywords`(keyword,rank,sta,rpurl)Values('".addslashes($k)."','$v','1','')");
  8. $dsql->Execute();
  9. }

替换为如下代码:

  1. foreach($wsnewas$k=>$v)
  2. {
  3. $rpurl="";
  4. $myrow=$dsql->GetOne("SELECTdistinctconcat(replace(b.sitepath,'{cmspath}',''),'/',(casea.filenamewhen''thena.idelsea.filenameend),'.html')rpurlFROMdede_archivesa,dede_arctypebwherea.typeid=b.idAnd(a.keywords='$k'ora.keywordslike'$k,%'ora.keywordslike'%,$k'ora.keywordslike'%,$k,%')");
  5. if(is_array($myrow))
  6. {
  7. //注意:$GLOBALS['cfg_basehost']样式类似为http://www.phpfensi.com,后面没有反斜杠;
  8. $rpurl=$GLOBALS['cfg_basehost'].trim($myrow['rpurl']);
  9. }
  10. $dsql->SetQuery("InsertInto`dede_keywords`(keyword,rank,sta,rpurl)Values('".addslashes($k)."','$v','1','$rpurl')");
  11. $dsql->Execute();
  12. }

在templetsdefault目录下新建 keywords.htm 模板文件(如果已自定义模板路径,此处选择对应的目录);keywords.html模板页面的源码保存为如下代码:

  1. {dede:sqlsql='Select*fromdede_keywordsorderbyaid}
  2. [field:aid/]-'[field:rpurl/]'target='_blank'>[field:keyword/]
  3. {/dede:sql}

进入DedeCms后台管理界面:

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

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

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

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

最后点击“预览主页”或“更新主页HTML”

即可生成“DedeCms文档关键词列表页”.