dedecms5.7标签tags静态化生成HTML方法
为了提升网站性能和搜索引擎优化(SEO),许多站长会选择将动态页面转换为静态页面。本文将详细介绍如何在DedeCMS 5.7中实现标签(tags)的静态化生成HTML的方法。
插件说明:虽然此插件最初是在DEDECMS 5.6版本中使用的,但经过测试,它同样适用于5.7版本。我们对原文件进行了整理和修改,以便更方便地上传和应用。目前,该方法已在两个站点上成功实施,尚未发现任何问题。
使用说明:请按照以下步骤操作:
1、首先,在DEDE后台SQL运行器里执行以下SQL语句:
ALTER TABLE `cn_tagindex` ADD `maketime` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0';
2、将四个文件夹上传至网站根目录,并覆盖原有文件。然后进入后台 - 生成 - 更新TAG静态。
3、在“是否强制全部生成”选项中选择第一个:“重新生成全部TAG列表”。完成上述操作后点击确定按钮开始生成静态文件。
注意:在进行任何更改之前,请确保做好数据备份工作。
以下是原始说明文档内容:
一、功能简介:本修改适用于DedeCMS 5.6 UTF-8版本,可以生成整个网站所有标签(Tags)列表以及每个Tag首页的静态网页文件。
二、具体实施步骤如下:
1、在网站根目录下创建名为“tag”的文件夹(小写形式)。
2、通过后台SQL工具执行下面这条命令:
ALTER TABLE `cn_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行插入:
- include/taglib/tag.lib.php 第61行屏蔽,第62行插入相关内容(或直接覆盖)
- include/extend.func.php 将提供的代码添加到您的extend.func.php文件中
三、实际应用指南:
1、登录到后台“生成”界面,您应该能在左侧菜单看到新增的“更新TAG静态”选项。
2、自行编辑list_tag.htm和index_tag.htm这两个模板文件,并将其放置于站点模板目录内。
3、“是否强制全部生成”选项提供了两种模式以节省资源:
- 选择“重新生成全部TAG列表”,系统会刷新所有的标签列表页面;
- 而“仅更新上次生成后有变化的TAG”则只会处理自上次更新以来发生变化及新增加的部分,这种方法更加高效快捷。
4、最终生成的标签首页将位于根目录下,命名为tags.html。
5、如果需要在模板中链接到某个特定标签的静态地址,可以使用类似以下结构的标签:
{dede:tag type='current'}
[field:id function="nic_tag_url(@me)" /]
{/dede:tag}
其中,“id”代表该标签对应的唯一ID号。
6、对于内容页面模板,若希望指向当前文档相关标签的列表页,则可采用如下标签:
{dede:field.id function='nic_arc_tag_link(@me)'/}
高级补充:
1、您可以更改默认的“tag”目录名,只需调整arc.taghtml.class.php的第146行与extend.func.php的第15行中的“tag/”标识即可。
2、文件名中的ID编号不可省略,例如“作业”和“昨夜”的拼音相同,去掉ID会导致文件名重复冲突。
3、标签列表页的生成速度与普通列表页相当,即使拥有大量标签(如一万条),每条对应三十篇文章,分页显示时也不会显著影响效率。
4、如果您希望在发布新文章的同时自动更新相关的标签列表页,可以参考附带的inc_archives_functions.php文件,修改dede/inc/inc_archives_functions.php,在适当位置插入相应的代码片段。