织梦tag标签静态插件5.7下载安全吗?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 织梦建站 正文

织梦默认的Tag标签是动态链接(/tags.php?/关键词/),这不利于SEO,将其修改为静态链接(/tags/关键词.html)是提升网站SEO优化的一个重要步骤。

织梦tag标签静态插件下载5.7
(图片来源网络,侵删)

重要提示:安全第一,务必备份!

在进行任何文件修改之前,请务必备份您的整个网站,特别是 includetemplets 目录和数据库,以防修改出错导致网站无法访问。


使用现成的静态化插件(推荐新手)

这是最简单、最安全的方法,通过安装一个现成的插件来完成所有修改。

推荐插件:DedeCMS Tag静态化插件

网上有很多类似的插件,核心功能都是修改模板标签和生成规则,这里以一个常见的版本为例,说明操作步骤。

插件下载:

织梦tag标签静态插件下载5.7
(图片来源网络,侵删)

由于插件链接可能会失效,建议您在搜索引擎中搜索 “织梦DedeCMS 5.7 tag静态化插件” 来寻找最新的下载资源,通常这些插件会打包成一个 .zip 文件。

安装步骤:

  1. 下载并解压:将下载的插件包解压。
  2. 上传文件
    • tag 目录(包含 index.phplist.php)上传到您的网站根目录。
    • include/taglib/tag.lib.php 文件覆盖到您网站根目录下的 include/taglib/tag.lib.php
    • dede/MakeHtml_tags.php 文件覆盖到您网站根目录下的 dede/MakeHtml_tags.php
    • dede/templets/MakeHtml_tags.htm 模板文件覆盖到相应目录。
  3. 修改后台设置
    • 登录织梦后台,进入【系统】->【系统基本参数】->【核心设置】。
    • 找到 “文档HTML命名规则” 这一项,将其修改为:{typedir}/{Y}/{M}/{D}/{aid}.html (这是文章页的规则,保持不变)。
    • 找到 “栏目列表命名规则”,修改为:{typedir}/index_{page}.html
    • 关键一步:找到并添加一项 “Tag列表命名规则”,如果后台没有这个选项,可能需要手动在数据库中添加,或者插件会自动处理,如果插件提供了说明,请按说明操作,通常规则是:tags/{tagname}/index_{page}.html
  4. 修改模板文件
    • 打开您首页、列表页、文章页等所有需要显示Tag标签的模板文件。
    • 找到调用Tag的代码,通常是:
      {dede:tag row='10' getall='0'}
      <a href='[field:link/]'>[field:tagname/]</a>
      {/dede:tag}
    • 将其修改为插件要求的格式,通常是:
      {dede:tag sort='hot' row='10'}
      <a href='[field:link/]'>[field:tagname/]</a>
      {/dede:tag}
      • sort='hot' 表示按热门排序,你也可以用 sort='new' 按最新排序。
      • getall='0' 这个参数在新版本中可能已不需要,插件通常会处理链接的生成。
  5. 更新Tag并生成HTML
    • 进入【频道管理】->【TAG标签管理】。
    • 点击 “更新TAG标签”,让系统重新整理所有Tag。
    • 点击 “更新TAG主页”,生成Tag的首页(通常是 /tags/index.html)。
    • 点击 “更新TAG列表页”,生成所有Tag的静态列表页。这一步可能会比较耗时,请耐心等待

完成以上步骤后,您的Tag标签就会变成静态链接了。


手动修改代码(推荐有一定基础的用户)

如果您不想使用插件,或者找不到合适的插件,可以手动修改核心文件来实现,这种方法更灵活,但风险稍高。

第一步:修改标签库文件 (include/taglib/tag.lib.php)

  1. 用编辑器打开 /include/taglib/tag.lib.php 文件。
  2. 找到大约在第 65-75 行的 function lib_tag(&$ctag, $refObj) 函数。
  3. 在这个函数内部,找到生成链接的代码行,类似这样:
    $link = $GLOBALS['cfg_phpurl']."/tags.php?/".urlencode($row['tagname'])."/";
  4. 将其修改为
    // 定义tag静态目录,确保你的网站根目录下有这个目录且有写入权限
    $tag_dir = $GLOBALS['cfg_cmspath'].'/tags';
    // 创建目录
    if(!is_dir($tag_dir)) {
        mkdir($tag_dir, 0777);
    }
    // 生成静态链接
    $link = $GLOBALS['cfg_cmsurl']."/tags/".urlencode($row['tagname']).".html";
    • 这段代码会生成 /tags/关键词.html 格式的链接。
    • cfg_cmsurl 是你的网站网址,cfg_cmspath 是网站在服务器上的路径。

第二步:创建Tag列表页模板 (tags.php)

  1. 在您的网站根目录下新建一个名为 tags.php 的文件。

  2. tags.php 的内容修改为以下代码(这是处理Tag列表页的PHP逻辑):

    <?php
    require_once (dirname(__FILE__) . "/include/common.inc.php");
    require_once DEDEINC."/arc.taglist.class.php";
    $PageNo = 1;
    if(isset($_GET['PageNo'])) {
        $PageNo = intval($_GET['PageNo']);
    }
    $typeid = 0;
    if(!empty($_GET['typeid'])) {
        $typeid = intval($_GET['typeid']);
    }
    $tag = FilterSearch(urldecode(trim($_GET['tag'])));
    // 检查tag是否存在
    $row = $dsql->GetOne("SELECT * FROM `dede_tagindex` WHERE tag like '{$tag}' ");
    if(!is_array($row)){
        ShowMsg('您指定的标签不存在!', '-1', 0, 10);
        exit();
    }
    $typeid = isset($typeid) && is_numeric($typeid) ? $typeid : 0;
    $tl = new TagList($tag, $typeid);
    $tl->GetTagList();
    // 获取分页
    $pagelist = $tl->GetPageList();
    // 获取列表内容
    $list = $tl->GetList();
    // 加载模板
    $tplfile = DEDETEMPLATE.'/taglist.htm'; // 确保这个模板文件存在
    if(!file_exists($tplfile)){
        echo "模板文件不存在:".$tplfile;
        exit();
    }
    // 设置模板变量
    $dtp = new DedeTemplate();
    $dtp->LoadTemplate($tplfile);
    $dtp->Display();
    ?>

第三步:创建Tag列表页模板 (taglist.htm)

  1. 在您的模板目录(/templets/)下新建一个名为 taglist.htm 的文件。

  2. 在这个文件中,编写Tag列表页的HTML代码,并使用织梦的标签来调用内容。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">{dede:tagname/} - {dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:tagname/}">
    <meta name="description" content="dede:tagname/}的相关文章列表">
    </head>
    <body>
    <h1>标签:{dede:tagname/}</h1>
    <div class="list">
    {dedarclist titlelen='42' row='10'}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dedarclist}
    </div>
    <div class="page">
    {pagelist listitem='pre,next,end,option' listsize='5'/}
    </div>
    </body>
    </html>
    • {dede:tagname/} 会显示当前Tag的名称。
    • {dedarclist} 用于调用包含该Tag的文章列表。

第四步:修改后台设置和生成页面

  1. 后台设置:进入【系统】->【系统基本参数】->【核心设置】。
    • “Tag列表命名规则”:如果后台有这个选项,设置为 tags/{tagname}/index_{page}.html,如果没有,可以忽略,因为我们用的是 tags.php 直接处理。
  2. 生成页面
    • 进入【频道管理】->【TAG标签管理】。
    • 点击 “更新TAG标签”
    • 手动访问:现在您可以手动访问 http://您的域名/tags/关键词.html 来测试是否能正常显示页面,如果显示正常,说明逻辑是通的。
    • 批量生成:织梦后台没有直接为所有Tag生成静态页面的功能,您需要自己写一个脚本循环遍历所有Tag,然后调用生成页面的API,或者使用第三方工具来完成批量生成,对于网站初期Tag不多的情况,手动点击生成即可。

总结与建议

方法 优点 缺点 适合人群
插件法 简单快捷,一键安装,不易出错。 可能存在兼容性问题,插件作者不再维护时风险高。 新手,追求效率的用户。
手动法 灵活可控,不依赖第三方,代码更轻量。 风险较高,需要修改核心文件,需要一定的PHP和织梦知识。 有一定开发基础,希望深度定制的用户。

给您的建议:

  1. 优先尝试插件法:这是最稳妥、最简单的方式,先找一个评价好的插件安装测试。

  2. 如果插件不合适,再考虑手动法:手动法虽然麻烦,但能让你更深刻地理解织梦的Tag机制。

  3. 检查目录权限:无论是哪种方法,确保你的网站根目录下的 tags 目录(或你自定义的目录)有写入和执行权限,否则无法生成静态文件。

  4. URL重定向(重要):为了SEO,当用户访问旧的动态URL (/tags.php?/关键词/) 时,应该自动跳转到新的静态URL (/tags/关键词.html),这可以通过在网站根目录的 .htaccess 文件中添加以下Apache规则来实现:

    RewriteEngine On
    # 将旧的tag动态链接重定向到新的静态链接
    RewriteRule ^tags\.php\?\/(.*)$ /tags/$1.html [R=301,L]

希望这个详细的指南能帮助您成功实现织梦DedeCMS 5.7的Tag标签静态化!

-- 展开阅读全文 --
头像
C语言中char类型数据到底占多少字节?
« 上一篇 12-12
dede from_unixtime函数如何正确使用?
下一篇 » 12-12

相关文章

取消
微信二维码
支付宝二维码

目录[+]