页关键词如何调用?

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

核心函数:GetTags()

织梦提供了一个核心函数 GetTags() 来获取当前文章的关键词,这个函数的使用非常简单。

织梦内容页关键词调用
(图片来源网络,侵删)

GetTags() 函数说明

  • 作用:获取当前文章页面的关键词列表。
  • 返回值:返回一个由关键词组成的字符串,关键词之间默认用英文逗号 分隔。
  • 语法
    {dede:field.keywords function='html2text(@me)'/}
    • field.keywords:调用文章的 keywords 字段。
    • function='html2text(@me)':这是一个非常重要的处理步骤,织梦后台在填写关键词时,为了方便,通常使用“英文逗号”或“中文逗号”分隔,但有时也可能包含HTML标签(如<a>标签,如果使用了关键词自动内链功能)。html2text 函数的作用就是将这些内容全部转换为纯文本,并统一用英文逗号分隔,确保输出的格式干净、标准。

页模板中调用关键词

最基本的需求是在文章页的某个位置(比如文章标题下方)直接显示关键词。

打开模板文件 页模板文件,通常位于 /templets/default/article_article.htm (如果你的模板是默认的)或者你自定义的目录下。

插入调用代码

在需要显示关键词的位置,插入以下代码:

织梦内容页关键词调用
(图片来源网络,侵删)
<p class="keywords">
    <strong>关键词:</strong>
    {dede:field.keywords function='html2text(@me)'/}
</p>

效果:如果文章的关键词是 “织梦CMS, 教程, SEO”,那么页面上的显示效果就是: 关键词:织梦CMS, 教程, SEO


高级应用:将关键词转为链接(相关文章/Tag链接)

这是更常用也更高级的用法,我们通常希望点击关键词能跳转到相关的文章列表页或Tag标签页。

实现这个功能需要用到织梦的 自定义宏标记,你需要先在后台定义一个宏,然后在模板中调用。

步骤1:在后台创建自定义宏

  1. 登录织梦后台,进入“模板” -> “自定义宏标记”。
  2. 点击“新增宏标记”。
  3. 标记名称:填写一个你容易记住的名字,getKeywordLinks
  4. 类型:选择“标记调用代码”。
  5. 标记代码:这是最关键的一步,粘贴以下代码:
    [field:function run='GetKeywordLink(@me)'/]
  6. 保存

代码解释: 这里的 GetKeywordLink 是一个自定义的PHP函数,它负责将关键词字符串转换成链接,你需要将这个函数添加到织梦的核心文件中。

步骤2:添加PHP函数到核心文件

你需要编辑 /include/helpers/extend.helper.php 文件(如果这个文件不存在,就新建一个)。

在文件末尾的 ?> 之前,添加以下PHP函数:

/**
 * 把当前文章的关键字转为链接
 * @param string $keyid 关键字ID,这里用不到,但函数参数需要保留
 * @param string $typeid 栏目ID,这里用不到,但函数参数需要保留
 * @return string
 */
if (!function_exists('GetKeywordLink'))
{
    function GetKeywordLink($keyid, $typeid)
    {
        $dsql = new DedeSql(false);
        $tags = '';
        // 获取当前文章的keywords,并进行处理
        $keywords = trim(GetReplaceKeyWord($keyid, $typeid)); // 获取并处理关键词
        if ($keywords != '')
        {
            $keywords = explode(',', str_replace(',', ',', $keywords));
            foreach ($keywords as $keyword)
            {
                $keyword = trim($keyword);
                if ($keyword != '')
                {
                    // 拼接链接,这里使用 /tags.php?/关键词/ 的格式
                    $tags .= "<a href='/tags.php?/" . urlencode($keyword) . "/' target='_blank'>" . $keyword . "</a>, ";
                }
            }
        }
        return $tags;
    }
}

注意

  • 这段代码中的 GetReplaceKeyWord() 函数是织梦内部用来获取文章关键词的,比直接读取字段更可靠。
  • 链接格式是 /tags.php?/关键词/,这是织梦Tag页面的标准URL格式,如果你的网站设置了伪静态规则,请确保这个格式是正确的。

步骤3:在模板中使用宏

回到你的内容页模板文件 (article_article.htm),使用你刚刚创建的宏来调用关键词链接。

<p class="tag-links">
    <strong>标签:</strong>
    {dede:getKeywordLinks}
</p>

效果: 如果文章的关键词是 “织梦CMS, 教程, SEO”,那么页面上的显示效果就是: 标签:<a href='/tags.php?/织梦CMS/' target='_blank'>织梦CMS</a>, <a href='/tags.php?/教程/' target='_blank'>教程</a>, <a href='/tags.php?/SEO/' target='_blank'>SEO</a>,

你可以通过CSS来美化这些链接的样式。


常见问题与注意事项

  1. 关键词为空 如果文章没有填写关键词,{dede:field.keywords/} 会输出空,为了避免页面出现空白或奇怪的样式,最好用 if 语句判断一下。

    {dede:field.keyword runphp='yes'}
    if(@me != '') {
        echo "<p class='keywords'><strong>关键词:</strong>" . @me . "</p>";
    }
    {/dede:field.keyword}
  2. 关键词分隔符问题 用户输入时可能用中文逗号“,”也可能用英文逗号“,”。function='html2text(@me)' 会统一处理成英文逗号,这对于后续处理(如转为数组)非常有帮助。

  3. 伪静态问题 如果你的网站Tag页面使用了自定义的伪静态规则(/tag/关键词.html),那么你在 extend.helper.php 文件中需要修改拼接的链接格式。 将:

    $tags .= "<a href='/tags.php?/" . urlencode($keyword) . "/' target='_blank'>" . $keyword . "</a>, ";

    修改为:

    $tags .= "<a href='/tag/" . urlencode($keyword) . ".html' target='_blank'>" . $keyword . "</a>, ";
需求场景 推荐方法 代码示例
简单显示关键词 直接调用field.keywords并处理 {dede:field.keywords function='html2text(@me)'/}
将关键词转为链接 使用自定义宏+PHP函数 后台创建宏{dede:getKeywordLinks}
extend.helper.php添加GetKeywordLink函数
模板中调用{dede:getKeywordLinks}

希望这份详细的教程能帮助你完美地在织梦内容页中调用和使用关键词!

-- 展开阅读全文 --
头像
织梦火车头如何自动生成精准tag?
« 上一篇 02-26
C语言readfile函数如何正确使用?
下一篇 » 02-26

相关文章

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

目录[+]