如何实现dedecms管理系统TAG标签静态化

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-13
如何实现织梦DedeCMS的tag标签静态化

1、进入你的DedeCMS后台,在左边找到“系统-->系统基本设置-->核心设置”,在下面有一项“是否使用伪静态”,把此项后面的点上“是”。表示网站要启用伪静态。
2、在DedeCMS源代码的目录里,依次找到include/taglib/tag.lib.php文件,大概在87行左右,找到:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
将其改为:
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
这一步就将TAG链接中的问号去掉了。
3、依旧在DedeCMS源代码的目录里,依次找到templets/default/taglist.htm,找到:
当前位置::<a
href="{dede:global.cfg_cmsurl/}/">主页 > <a
href='tags.php'>TAG标签 > {dede:field.title /}
修改为
当前位置::<a
href="{dede:global.cfg_cmsurl/}/">主页 > <a
href='/tags.html'>TAG标签 > {dede:field.title /}
这一步将TAG连接的列表页的URL改为以.html结束。
4、最后一步,要分两种情况,这是很多人没注意到的,首先确保你的空间或主机是什么基于服务器搭建的(具体请垂询你的空间服务商)。现在主流的有Apache和Nginx服务器。
(1):如果你的空间是基于Linux+Apache搭建的环境,在根目录新建httpd.ini文件(若是你写有其他规矩请直接把以下代码添加到httpd.ini):
RewriteRule ^(.*)/tags\.html $1/tags.php;
RewriteRule ^(.*)/tags/(.*).html $1/tags.php?/$2;
(2):如果你的空间是基于Linux+Nginx服务器搭建的环境,则静态化规则改为:
rewrite ^(.*)/tags\.html $1/tags.php;
rewrite ^(.*)/tags/(.*).html $1/tags.php?/$2;
5、最近进入织梦DedeCMS后台更新缓存后,就能在前台页面看到静态的TAG链接了。赶快去动手修改吧。值得注意的是:修改前请注意做好备份,以免出错导致程序文件丢失。

有GBK编码的插件,这个我自己使用过的,可以正常使用的http://www.699jk.com/tags.html
一、说明:本修改适用5.7 GBK,可以生成网站所有TAG列表的静态网页文件,还有生成tag的首页静态文件。
修改前,请备份相关的原始文件。
二、修改步骤:
1、在DEDE网站根目录,建立“tag”目录(小写)
2、在DEDE后台SQL运行器里,执行以下一条SQL:
ALTER TABLE `#@__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
143行,插入
include/taglib/tag.lib.php 61行屏蔽,62行插入 (参考附带的文件,也可以直接覆盖)
include/extend.func.php 把里面的代码,都复制到你的extend.func.php文件里

三、使用说明:
1、进入后台“生成”,即可看到左边的“更新TAG静态”(就在更新主页、栏目、文档等功能的下方)
2、自行编辑TAG列表页模板list_tag.htm、TAG首页模板index_tag.htm,都放在你站点模板所在目录即可(和首页模板、列表页模板、内容页模板等在一起)
3、生成有个选项“是否强制全部生成”,它是为了节约资源设计的
如果是“重新生成全部TAG列表”,它会更新所有的TAG的列表页;
如果是“仅更新上次生成后有变化的TAG”,它则会只更新上次更新之后有变化及新增加的TAG的列表页,这个比较节约时间
4、生成的TAG首页,放在根目录,叫做tags.html
5、如果你的模板里,还有TAG需要指向到它的静态地址,则用参考这个函数去处理其标签即可:
{dede:tag type='current'}
[field:id function="nic_tag_url(@me)" /]
{/dede:tag}
其中的id就是这个TAG的ID号
6、在内容页模板,如果想指向该文TAG的列表页,用以下标签即可:
{dede:field.id function='nic_arc_tag_link(@me)'/}
在文章列表页、arclist标签等,使用一下代码调用文章TAG列表
[field:id function='nic_arc_tag_link(@me)'/]
高级补充说明:
1、TAG这个目录可以改,修改arc.taghtml.class.php的146行和extend.func.php的15行,里面的tag/字样
2、文件名里的id号不能去掉,举例说因为“作业”和“昨夜”的拼音都一样,如果没有ID,他们的文件名就重复了。
3、生成速度和普通列表页一致的,因为是从哪里修改过来的。 你有1万个TAG,假定你每个TAG对应有30个文章吧,列表页10篇为一页,那就有3万篇了。
你可以到后台的sql运行工具里,执行这一句看看,就知道TAG对应文章之后,数量就远大于TAG数量本身:
select count(*) as c from #@__taglist
4、如果需要在发布新文章的时候,同时更新相关的TAG列表页,可以参考附带的inc_archives_functions.php,修改你DEDE后台目录dede/inc/inc_archives_functions.php
增加 741行、758~765行


  • 进入你的织梦dedecms后台,在左边找到“系统”-“系统基本设置”-“核心系统”,在下面有一项基本选项“”是否使用伪静态“在下面点击”是。“

  • 在dedecms源代码的目录里找到 include/taglib/tag.lib.php 文件,大概在87行左右找到

    $row['link'] = $cfg_cmsurl."/tag.php?/"urlencode($row['keyword')."/"

    改为$row['link'] = $cfg_cmsurl."/tag/"urlencode($row['keyword'])".html"

  • 依旧在dedecms源代码目录里找到templets/default/taglist.html找到<strong>当前位置:</strong>:<a href="{dede:global.cfg_cmsurl/}/">主页</a> ><a href='tags.php'>TAG标签</a>>{dede:field:title/}

    修改为<strong>当前位置:</strong>:<a href="{dede:global.cfg_cmsurl/}/">主页</a>><a href='tags.html'>TAG标签</a>>{dede:field:title}

  • 最后一步分2种情况,确保你的空间主机是基于什么服务器搭建的,现流的有APACHE和Nginx服务器

    1)如果是linux+apache搭建的,在根目录新建http.ini文件(若是你写有其他规矩请直接把以下代码添加到httpd.ini):

    RewriteRule ^(.*)/tags\.html$1tags.php;

    RewriteRule ^(.*)/tags/(.*).html$1/tag.php?/$2;

  • 2)如果空间是基于linu+nginx搭建的静态规则改为

    rewrite ^(.*)?tags\.html$1tags.php;

    rewrite ^(.*)/tag/(.*).html $1/tag:php?/$2;



  • dede如何备份数据库(sqldeveloper备份数据库)
    答:一、备份数据库数据,方法同上进入DedeCms后台-系统-数据库备份/还原 二、下载相关文件下载数据库备份资料dataackupdata,将backupdata文件夹下载到本地下载附件文件夹,将根目录下的uploads文件下载到本地 这个得根据你的情况,选择多少天备份一次,建议经常备份 如果您改动了模板文件,或其他系统文件,建议重新下载到本地做...
  • DeDecms栏目与子栏目显示顺序怎么调整?
    答:找到方法了. 把TITLE里换成下面的代码就可以了{dede:field name='position' runphp='yes'} $tc="_"; //分隔符 $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符 @me=html2text(@me); //去除html标签 $tf=split($tw,@me); //分解成数组 for($ta=(count($tf)-2);$ta>=1;...
  • 在网页上如何实现提交表单后讲内容发送到指定的邮箱中
    答:能不用就不用 要用的话就php吧 而且不想调用类或类文件什么的。因为页面是基于dedecms下的 最好能够有直观的html和php代码 单选框的处理是重点 追答 一定要用服务器端程序才行。那就用PHP吧。 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 1条折叠回答 其他类似问题2017-12-16...
  • 怎样用Dreamweaver制作一个个人虚拟网站?
    答:1、将这些域名上解析到虚拟空间或者/服务器上2、用FTP或者服务器/虚拟空间管理后台,将PHP源码传到服务器/虚拟空间网站根目录(一般源码都有安装叔,然后按照提示安装)3、再进入你搭建网站的后台,修改模块,添加内容!另外网上也有一些模块,如果不会修改,你可以网上看看教程。DW在这其中起来的作用,是制作模块(也就是网站...