帝国CMS8.0文章页面设置TAGS关键字调用及TAGS静态化规则

帝国CMS8.0文章页面设置TAGS关键字调用及TAGS静态化规则

V+变量
2026-05-28 / 0 评论 / 2 阅读 / 正在检测是否收录...

1 前言

博主最近把帝国cms7.5做的美食网站 5VAR美食谷 升版到8.0,主要是想体验更安全的PHP8,但是升版后发现TAG调用失效,经过多方排查,发现是升级后模板未修改,以及PHP8模式下数组需要增加单引号的强制要求导致,经过一番折腾终于处理好了,顺便记录下。

2 操作步骤

2.1帝国CMS TAG设置

2.1.1 登录后台,单击【栏目】菜单【TAGS管理】【设置TAGS参数】子菜单,进入设置TAGS参数界面。

2.1.2 进入设置TAGS参数界面, 前台开启TAGS:设置前台/e/tags/页面是否开启使用。

默认使用的模板:选择tags的列表模板,这里建议选择和文章一样的列表模板;
每页显示信息:设置不指定line情况下默认的每页显示信息数。

2.2 帝国CMS TAGS标签调用

2.2.1 用帝国cms自带的自定义调用工具进行调用:

showtags分类ID,显示数量,每行显示数量,显示排序,只显示推荐,推荐TAGS属性,显示间隔符,是否显示信息数,链接附加参数,链接使用变量/showtags

具体参考:模板==》自动生成标签===》调用tags标签模板

2.2.2 帝国cms使用灵动标签调用当前文章内容tag标签

[e:loop={"SELECT infotags FROM {$dbtbpre}ecms_news WHERE id='$navinfor[id]' LIMIT 1",1,24,0}]
<?php
$tag = '';
$infotags = $bqr['infotags'];
// 统一中文逗号为英文逗号,避免分隔失败
$str = str_replace(',', ',', $infotags);
$t = explode(',', $str);

foreach ($t as $tagName) {
    $tagName = trim($tagName);
    if ($tagName !== '') {
        // 对标签名进行URL编码和HTML实体转义
        $encodedTag = urlencode($tagName);
        $safeTag = htmlspecialchars($tagName, ENT_QUOTES, 'UTF-8');
        $tagslink = $public_r['newsurl'] . "e/tags/?tagname=" . $encodedTag;
        $tag .= '<a href="' . $tagslink . '" target="_blank" rel="tag">' . $safeTag . '</a> ';
    }
}
echo $tag;
?>
[/e:loop]

2.2.3 帝国CMS灵动标签调用TAGS

[e:loop={"SELECT tagid, tagname FROM {$dbtbpre}enewstags ORDER BY num DESC LIMIT 10",0,24,0}]
<li>
    <a href="<?=$public_r['newsurl']?>e/tags/?tagid=<?=$bqr['tagid']?>" 
       target="_blank" 
       rel="tag noopener noreferrer">
        <?=htmlspecialchars($bqr['tagname'], ENT_QUOTES, 'UTF-8')?>
    </a>
</li>
[/e:loop]

或是我们自己根据tagid来显示

[e:loop={"SELECT tagid, tagname FROM {$dbtbpre}enewstags ORDER BY tagid ASC",0,24,0}]
<li>
    <a href="<?=$public_r['newsurl']?>e/tags/?tagid=<?=$bqr['tagid']?>" 
       target="_blank" 
       rel="tag noopener noreferrer">
        <?=htmlspecialchars($bqr['tagname'], ENT_QUOTES, 'UTF-8')?>
    </a>
</li>
[/e:loop]

2.3 设置伪静态规则

如果我们采用的伪静态,则需要在Nginx或Apache配置文件中添加伪静态规则。

2.3.1 NGINX伪静态规则

rewrite ^/tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 last;

2.3.2 apache 伪静态规则

#TAGS信息列表页
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-(.+?)\.html$ /e/tags/index.php?tagname=$1&page=$2
0

评论 (0)

取消