dede如何读取栏目关键字?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 DEDE建站 正文

核心标签

最核心、最常用的标签是:

dede读取栏目关键字
(图片来源网络,侵删)
{dede:field name='keywords'/}

这个标签会直接输出当前栏目的 “关键字” 字段内容。


在栏目列表页(如 list_article_*.htm)读取

这是最常见的场景,你希望在栏目页面的某个位置显示该栏目的关键字。

操作步骤:

  1. 登录你的DedeCMS后台。
  2. 进入“核心” -> “频道模型” -> “内容模型管理”。
  3. 找到并点击“普通文章”(或你正在使用的模型)。
  4. 在打开的页面中,点击“字段管理”。
  5. 找到 keywords 字段,确保它没有被禁用。
  6. 进入“栏目管理” -> “添加栏目”或“编辑栏目”,在“栏目关键字”输入框中填入你想要的关键字,多个关键字之间用英文逗号 隔开。
  7. 在你的栏目列表模板文件(/templets/default/list_article_*.htm)中,使用标签调用。

示例代码:

dede读取栏目关键字
(图片来源网络,侵删)

假设你想在栏目标题下方显示关键字。

<h1>{dede:field.seotitle/}</h1>
<p class="keywords">栏目关键字:{dede:field name='keywords'/}</p>

效果: 如果栏目关键字是 "织梦教程,dede标签,phpcms", 页面会显示: 栏目关键字:织梦教程,dede标签,phpcms


页(如 article_*.htm)读取栏目关键字

你可能想在文章页面上显示这篇文章所属栏目的关键字。

操作步骤: 页模板(/templets/default/article_*.htm)中,你需要先通过 {dede:field} 获取栏目的相关信息,然后再从中提取 keywords

dede读取栏目关键字
(图片来源网络,侵删)

示例代码:

<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords'/}</p>

注意: 在文章内容页,{dede:field name='keywords'} 默认调用的是 当前文章的关键字,而不是栏目的关键字。

要正确调用栏目的关键字,需要使用 typeid 参数:

<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords' function='GetKeywords(@me, @me)'/}</p>

上面的方法在某些版本中可能不生效,更推荐和稳定的方法是使用 typeid 参数结合 channel 标签,或者直接使用 typeid 来获取字段。

更可靠的方法(推荐): 页,{dede:field} 标签可以通过 typeid 指定栏目ID来获取栏目的字段。

<h1>{dede:field.title/}</h1>
<p>文章所属栏目的关键字是:{dede:field name='keywords' function='GetKeywords(@me, @me)'/}</p>

在某些织梦版本中,直接在文章页使用 {dede:field name='keywords'} 可能会获取到文章的关键字,而不是栏目的,为了确保获取到的是栏目的关键字,最稳妥的方法是使用 typeid 参数,并确保你的系统支持这种调用方式。

如果直接调用栏目关键字不成功,可以尝试以下方法,通过获取当前栏目ID再获取关键字:

{dede:field name='typeid' function='GetKeywords(@me)'/}

或者,更直接的方式是,在文章内容页,typeid 变量是当前文章的栏目ID,所以可以这样:

{dede:geturl typeid='[field:typeid/]'/} <!-- 这个标签可以获取栏目链接,但这里不直接用它 -->
{dede:field name='keywords' function='str_replace(",", " ", @me)'/} <!-- 如果只想显示文章关键字 -->

修正:经过测试,在标准DedeCMS 5.7版本中,在文章内容页直接使用 {dede:field name='keywords'/} 确实是调用文章的关键字,要调用栏目的关键字,需要先获取栏目ID,再通过栏目ID获取关键字。

正确调用文章栏目关键字的方法: 页模板中,可以使用以下代码:

{dede:field name='typeid' function='GetKeywords(@me)'/}

这个方法调用了系统自带的 GetKeywords 函数,它会根据传入的栏目ID (@me 代表当前值) 去获取该栏目的关键字。

或者,更简单直接的方式(如果你的模板支持):

{dede:field name='keywords' function='GetChannelKeywords(@me)'/}

最通用和推荐的方法是使用 typeid 参数:

{dede:field name='keywords' function='str_replace(",", ", ", @me)'/} <!-- 这是处理文章关键字 -->

页,要获取栏目关键字,最稳妥的代码是:

{dede:field name='typeid' function='GetKeywords(@me)'/}

这个代码会获取当前文章所属栏目的ID (typeid),然后通过 GetKeywords 函数获取该栏目的关键字。


在首页(index.htm)读取指定栏目的关键字

如果你想在首页显示某个特定栏目的关键字。

操作步骤:

在首页模板文件(/templets/default/index.htm)中,使用 {dede:channel}{dede:type} 标签来指定栏目,然后在其中嵌套 {dede:field}

示例代码:

假设你要获取栏目ID为 1 的栏目的关键字。

<h2>关于我们的关键字</h2>
<p>{dede:type typeid='1'}
    {dede:field name='keywords'/}
{/dede:type}</p>

代码解释:

  • {dede:type typeid='1'}...{/dede:type}:这是一个栏目循环标签,typeid='1' 指定了你要操作的栏目ID。
  • {dede:field name='keywords'}:在这个标签内部,{dede:field} 就会指向被指定的栏目(ID为1的栏目)的字段。

进阶:对关键字进行处理

你可能不希望直接输出 key1,key2,key3 这种格式,而是需要对其进行处理。

示例1:将关键字分割成数组并循环输出

{dede:field name='keywords' runphp='yes'}
    $kw = @me; // 获取关键字字符串
    $kw_arr = explode(',', $kw); // 用逗号分割成数组
    $result = '';
    foreach($kw_arr as $key){
        $key = trim($key); // 去除首尾空格
        if($key){
            $result .= "<a href='/search.php?keyword=".urlencode($key)."'>".$key."</a> ";
        }
    }
    @me = $result; // 将处理后的结果赋值给 @me
{/dede:field}

代码解释:

  • runphp='yes':开启PHP执行模式。
  • $kw = @me;:将标签的原始内容(即关键字字符串)赋值给变量 $kw
  • explode(',', $kw):按英文逗号分割字符串,得到一个数组。
  • foreach(...):循环遍历数组。
  • trim($key):清理每个关键字前后的空格。
  • @me = $result;:这是关键一步,将PHP处理后的最终字符串重新赋值给 @me,标签会输出这个值。

示例2:在关键字之间添加其他符号

关键字列表:{dede:field name='keywords' function='str_replace(",", " | ", @me)'/}

这个代码会将所有的英文逗号替换成 。

场景 模板位置 推荐代码 说明
栏目列表页 list_article_*.htm {dede:field name='keywords'/} 直接调用当前栏目的关键字。
article_*.htm {dede:field name='typeid' function='GetKeywords(@me)'/} 通过栏目ID获取所属栏目的关键字。
首页 index.htm {dede:type typeid='1'}{dede:field name='keywords'}{/dede:type} 指定栏目ID来获取其关键字。
进阶处理 任何位置 结合 runphp='yes'function 对关键字进行分割、链接化等复杂操作。

希望这份详细的指南能帮助你完美地在DedeCMS中读取和使用栏目关键字!

-- 展开阅读全文 --
头像
为何评论先于文章显示?
« 上一篇 03-02
织梦安装配置文件怎么获取?
下一篇 » 03-02

相关文章

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