dede如何调出栏目英文?

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

后台必须设置英文名

无论使用哪种方法,首先确保你在后台已经为该栏目填写了“英文名称”。

dede调出栏目英文
(图片来源网络,侵删)
  1. 登录DedeCMS后台。
  2. 进入【栏目管理】 -> 【栏目管理】。
  3. 找到你想要调用的栏目,点击【修改】。
  4. 在修改页面,找到“栏目名称”和“英文名称”两个字段。
  5. 在“英文名称”输入框中填入对应的英文,"About Us"。
  6. 保存修改。

使用 {dede:channel} 标签(适用于栏目列表、首页等)

这是最常用、最直接的方法,用于调用栏目列表时同时显示中英文名称。

基础用法

{dede:channel} 标签默认不包含英文名称,我们需要通过自定义样式表(style)来调用它。

{dede:channel type='top' row='8'}
    <li>
        <a href="[field:typelink/]">[field:typename/]</a>
        <!-- 调用英文名称 -->
        <span class="en-name">[field:engname/]</span>
    </li>
{/dede:channel}

代码解释:

  • [field:typelink/]: 调用栏目的链接地址。
  • [field:typename/]: 调用栏目的中文名称。
  • [field:engname/]: 这是关键,它专门用于调用后台设置的“英文名称”。

进阶用法:自定义样式(typeidstyle

如果你只想调用特定ID的栏目,或者想自定义栏目的输出格式,可以使用 typeidstyle 属性。

dede调出栏目英文
(图片来源网络,侵删)

示例1:调用指定ID的栏目英文名(例如ID为1的栏目)

{dede:channel typeid='1'}
    <h2>[field:typename/]</h2>
    <p class="subtitle">[field:engname/]</p>
{/dede:channel}

示例2:自定义整个栏目的HTML结构

假设你想让每个栏目项的HTML结构为 <div class="menu-item"><a href="...">中文名 <span>英文名</span></a></div>

{dede:channel type='top' row='10'}
    <div class="menu-item">
        <a href="[field:typelink/]">
            [field:typename/]
            <span>[field:engname/]</span>
        </a>
    </div>
{/dede:channel}

使用 {dede:arclist} 标签(适用于文章列表页)

在文章列表页(article_list.htm)中,你可能需要显示该栏目所属的父栏目的英文名称,这时可以使用 {dede:arclist} 的相关字段。

dede调出栏目英文
(图片来源网络,侵删)

{dede:arclist} 可以通过 channel 属性来获取栏目信息。

{dede:arclist row='10' titlelen='50' channel='父栏目ID'}
    <li>
        <span class="cate-name">[field:typename/]</span>
        <a href="[field:arcurl/]">[field:title/]</a>
        <!-- 调用父栏目的英文名称 -->
        <span class="cate-en-name">[field:engname/]</span>
    </li>
{/dede:arclist}

代码解释:

  • channel='父栏目ID': 这个属性非常重要,它告诉 {dede:arclist} 在查询文章时,同时获取指定父栏目的信息,如果不写,默认获取当前栏目的信息。
  • [field:typename/]: 在这里会显示 channel 属性指定的父栏目的中文名称
  • [field:engname/]: 在这里会显示 channel 属性指定的父栏目的英文名称

使用SQL直接查询(最灵活,但需谨慎)

如果以上方法不满足你的复杂需求,可以直接在模板中嵌入SQL语句进行查询。此方法有一定风险,请确保SQL语句正确,以免影响网站性能。

{dede:sql sql='SELECT typename, engname, typedir FROM dede_arctype WHERE id = 栏目ID'}
    <div class="custom-box">
        <h2>[field:typename/]</h2>
        <p class="english">[field:engname/]</p>
        <p>链接地址: [field:typedir/]</p>
    </div>
{/dede:sql}

代码解释:

  • dede_arctype: 这是DedeCMS中存储栏目信息的表名,请确认你的表名是否一致。
  • WHERE id = 栏目ID: 将 栏目ID 替换为你想要查询的实际栏目ID。
  • [field:typename/], [field:engname/], [field:typedir/]: 分别对应查询结果中的 typename, engname, typedir 字段。

总结与排查

场景 推荐标签 关键字段
调用栏目列表 {dede:channel} [field:engname/]
在文章列表页调用父栏目信息 {dede:arclist} channel='父栏目ID' + [field:engname/]
复杂、特殊需求 {dede:sql} SELECT engname FROM dede_arctype WHERE id=?

如果调不出来,请检查以下几点:

  1. 后台是否填写? 再次确认后台“英文名称”字段已填写且不为空。
  2. 字段名是否正确? 确保使用的是 [field:engname/],而不是其他名字。
  3. 标签是否用对? 在栏目列表页用 {dede:channel},在文章列表页用 {dede:arclist}
  4. 缓存问题? 修改模板后,去后台【生成】 -> 【更新HTML】,或者清空一下网站缓存。
  5. 模板引擎问题? 确保你的模板没有被其他二次开发或插件禁用了 {dede:} 系列标签。

通常情况下,方法一 就能解决90%的需求,是最推荐使用的方式。

-- 展开阅读全文 --
头像
织梦文档关键词如何高效维护?
« 上一篇 04-11
C语言代码如何入门?
下一篇 » 04-11

相关文章

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

目录[+]