织梦CMS作为一个使用率极高的建站程序,自身其良好的SEO功能特征得到了许多个人站长和企业站的青睐。但是也有一些不利于网站优化的地方,比如织梦默认的TAG标签URL都是动态的,做过SEO优化的站长都知道动态链接不利于网站优化,那要如何才能实现织梦tag标签静态化呢?
下文将把我亲自操作的过程经验分享给大家,教如何使用织梦tag标签页面静态化插件实现静态化页面:
织梦tag页面静态化说明
本插件适用于DedeCMS 5.7版本,GBK和UTF编码编码格式均有效,可以生成TAG首页静态文件和网站所有TAG列表静态页面文件。修改之前请备份好相关原始文件,先来看一下修改完成之后的效果
http://www.seo-chengdu.cn/tags.php?/%E6%88%90%E9%83%BDSEO/ //默认tag链接 http://www.seo-chengdu.cn/tag/chengduseo_1_1.html //修改之后链接
本人在织梦DedeCMS5.7版本UFT编码下测试有效,2019年6月1日
织梦tag页面静态化修改步骤
1、在网站根目录创建tag文件夹(小写)
2、在织梦后台SQL命令运行器中,执行以下代码:
ALTER TABLE `dede_tagindex` ADD `maketime` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0';
3、增加文件:
templets/default/list_tag.htm //可直接使用文章列表页模板,复制修改文件名即可 templets/default/index_tag.htm //可从tag.htm复制 dede/makehtml_tag_action_list.php dede/makehtml_tag_action_index.php dede/makehtml_tag.php dede/templets/makehtml_tag.htm include/arc.taghtml.class.php
4、修改文件:
找到dede/inc/inc_menu.php文件,大约在142-150行左右的位置,插入:
<m:item name='更新TAG静态' link='makehtml_tag.php' rank='sys_MakeHtml' target='main' />
继续找到include/taglib/tag.lib.php文件,找到(也可复制附带文件直接覆盖)
//$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/"; //原DEDE代码,屏蔽 $row['link'] = nic_tag_url($row['id']); //新加代码,TAG静态化
最后一步:找到include/extend.func.php文件,将附带文件里的代码全部复制到里面extend.func.php里面就行了
织梦tag页面静态化使用说明
1、进入网站后台——生成——更新TAG静态
2、生成有个选项“是否强制全部生成”,是为了节省资源设计的;
“重新生成全部TAG列表”,将会更新所有的TAG列表页;
“仅更新上次生成有变化的TAG”,则只会更新上次更新之后有变化及新增加的TAG列表页,这个会比较节省时间
3、生成的TAG首页,在网站的根目录tags.html文件
4、如果你的模板里,还有TAG需要指向到它的静态地址,则用参考这个函数去处理其标签即可:
{dede:tag type='current'} [field:id function="nic_tag_url(@me)" /] {/dede:tag}
其中的id就是这个TAG的ID号
5、调用tag标签
在你想要调用tag的页面加入调用代码:new(最新),rand(随机),getall='0' 获取类型0为当前内容页TAG标记,1为获取全部TAG标记。
{dede:tag sort='new' getall='0'}<a href='[field:link/]'>[field:tag /]</a>{/dede:tag}
在内容页模板,如果想指向该文TAG的列表页,用以下标签即可
{dede:field.id function='nic_arc_tag_link(@me)'/}
高级补充说明:
1、TAG这个目录可以改,修改arc.taghtml.class.php的146行和extend.func.php的15行,里面的tag/字样
2、文件名里的id号不能去掉,举例说因为"作业"和"昨夜"的拼音都一样,如果没有ID,他们的文件名就重复了。
如果非要去掉ID,请按如下步骤修改: 1:修改include/arc.taghtml.class.php,去掉_".$this->Fields['id']."_".$this->PageNo." $makeFile = $this->Fields['typedir']."/".$pinyin_title."_".$this->Fields['id']."_".$this->PageNo.".html"; 2:打开include/extend.func.php,去掉 _".$tid."_1 $str = $GLOBALS['cfg_cmspath']."/tag/".$pinyin_title."_".$tid."_1.html";
3、生成速度和普通列表页一致的,因为是从哪里修改过来的。 你有1万个TAG,假定你每个TAG对应有30个文章吧,列表页10篇为一页,那就有3万篇了。
你可以到后台的sql运行工具里,执行这一句看看,就知道TAG对应文章之后,数量就远大于TAG数量本身:
select count(*) as c from dede_taglist
4、如果需要在发布新文章的时候,同时更新相关的TAG列表页,可以参考附带的inc_archives_functions.php,修改你DEDE后台目录dede/inc/inc_archives_functions.php
增加 741行、758~765行
注意事项:
不建议新站或内容较少的网站使用TAG标签,如果每篇文章设置的tag标签过多,会导致在生成静态页面之后,容易造成大量内容重复的页面。不但对网站优化没有提升,还可能会被搜索引擎视为作弊,造成网站被降权等一系列不利影响。
织梦tag标签页面静态化插件下载链接: https://pan.baidu.com/s/1l-7ZY1659QanbqAxluA_Bw 提取码: jng9