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

(图片来源网络,侵删)
- 登录DedeCMS后台。
- 进入【栏目管理】 -> 【栏目管理】。
- 找到你想要调用的栏目,点击【修改】。
- 在修改页面,找到“栏目名称”和“英文名称”两个字段。
- 在“英文名称”输入框中填入对应的英文,"About Us"。
- 保存修改。
使用 {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/]:这是关键,它专门用于调用后台设置的“英文名称”。
进阶用法:自定义样式(typeid 和 style)
如果你只想调用特定ID的栏目,或者想自定义栏目的输出格式,可以使用 typeid 和 style 属性。

(图片来源网络,侵删)
示例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: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=? |
如果调不出来,请检查以下几点:
- 后台是否填写? 再次确认后台“英文名称”字段已填写且不为空。
- 字段名是否正确? 确保使用的是
[field:engname/],而不是其他名字。 - 标签是否用对? 在栏目列表页用
{dede:channel},在文章列表页用{dede:arclist}。 - 缓存问题? 修改模板后,去后台【生成】 -> 【更新HTML】,或者清空一下网站缓存。
- 模板引擎问题? 确保你的模板没有被其他二次开发或插件禁用了
{dede:}系列标签。
通常情况下,方法一 就能解决90%的需求,是最推荐使用的方式。
