dede如何调用栏目名对应的英文名?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 DEDE建站 正文
  1. 在后台直接填写英文名(最推荐、最简单)
  2. 使用自定义栏目模型(功能最强大、最灵活)

在后台直接填写英文名(最常用)

这种方法利用了 DedeCMS 栏目默认的 keywords (关键词) 字段来存储英文名,这是一个非常巧妙且无需修改数据库的“懒人”方法。

dede 调用栏目名对应的英文名
(图片来源网络,侵删)

操作步骤:

修改模板文件 (templets/default/...)

在你需要显示英文名的模板文件中(list_article.htm 列表页或 article_article.htm 内容页),使用以下代码:

{dede:field.name function='htmlspecialchars(@me)'/}
<!-- 显示中文栏目名,关于我们 -->
<!-- 以下是调用英文名的代码 -->
{dede:field.keywords function='htmlspecialchars(@me)'/}

在后台栏目管理中填写英文名

  1. 登录你的 DedeCMS 后台。
  2. 进入【核心】 -> 【栏目管理】。
  3. 找到你想要设置英文名的栏目,点击后面的【基本设置】。
  4. 在打开的页面中,找到【】输入框。
  5. 在这个框里输入你的英文名,如果你的栏目中文名是“关于我们”,就在这里输入 About Us
  6. 点击【保存】。

工作原理: 模板中的 {dede:field.keywords/} 标签会调取该栏目的关键词内容,我们在这里把它当作英文名来使用。htmlspecialchars() 函数是为了防止特殊字符导致页面显示错误。

dede 调用栏目名对应的英文名
(图片来源网络,侵删)

优点:

  • 简单快捷:无需任何代码修改或数据库操作。
  • 无需新字段:利用了系统自带的 keywords 字段。

缺点:

  • 语义不清晰keywords 字段本意是用于 SEO 关键词,现在用来存英文名,对不熟悉的人来说可能有点困惑。
  • 功能受限:无法在频道封面页等场景直接调用,因为频道封面页的标签可能不支持 field.keywords

使用自定义栏目模型(最专业、最灵活)

如果你希望有一个专门的字段来存储英文名,并且希望调用更规范、更灵活,那么自定义栏目模型是最佳选择。

操作步骤:

在数据库中添加新字段

dede 调用栏目名对应的英文名
(图片来源网络,侵删)

这是最关键的一步,你需要为 dede_arctype 表(栏目表)增加一个新的字段来存储英文名。

  1. 备份数据库! (非常重要,以防万一)
  2. 使用你的数据库管理工具(如 phpMyAdmin),登录到你的网站数据库。
  3. 找到 dede_arctype 表(如果你的表前缀不是 dede_,请使用你自己的前缀)。
  4. 在该表中执行 SQL 语句,添加一个新字段,en_name
ALTER TABLE `dede_arctype` ADD `en_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '栏目英文名';

说明:

  • en_name:是你给新字段起的名字,你可以自定义,english_name
  • VARCHAR(255):是字段类型和长度,足够存储英文名了。
  • NOT NULL DEFAULT '':表示该字段不能为空,默认值为空字符串。

修改后台栏目管理界面

你需要让后台在添加/编辑栏目时,能显示出这个新字段。

  1. 打开 DedeCMS 安装目录下的文件: /dede/templets/catalog_add.htm (添加栏目模板) /dede/templets/catalog_edit.htm (编辑栏目模板)

  2. 在这两个文件中,找到类似 <tr> 的行,在合适的位置(栏目名称”和“上级栏目”的后面)添加以下 HTML 代码:

<tr>
    <td height="26" style="width:*px;">栏目英文名:</td>
    <td>
        <input name="en_name" type="text" id="en_name" size="30" class="alltxt" value="<?php echo $row['en_name']?>" />
        <span>用于调用显示,如:About Us</span>
    </td>
</tr>

修改处理逻辑文件

后台需要保存你输入的英文名。

  1. 打开文件:/dede/catalog_add.php (添加栏目处理文件)

  2. 在文件中找到 $queryTemplate = "INSERT INTOdede_arctype 这段 SQL 插入语句,在 和 之间,最后一个字段前加上 en_name,在 VALUES 的 和 之间,最后一个值前加上 '$en_name'

    修改前 (示例):

    $queryTemplate = "INSERT INTO `dede_arctype`
    (`reid`, `topid`, `sortrank`, `typename`, `typedir`, `isdefault`, `defaultname`, `issend`, `arcsta`, `sendrank`, `moresite`, `siteurl`, `sitepath`, `description`, `keywords`, `seotitle`, `modname`, `addcon`, `nativeplace`, `display`, `displaytype`, `corank`)
    VALUES
    ('$reid', '$topid', '$sortrank', '$typename', '$typedir', '$isdefault', '$defaultname', '$issend', '$arcsta', '$sendrank', '$moresite', '$siteurl', '$sitepath', '$description', '$keywords', '$seotitle', '$modname', '$addcon', '$nativeplace', '$display', '$displaytype', '$corank')";

    修改后 (示例):

    $queryTemplate = "INSERT INTO `dede_arctype`
    (`reid`, `topid`, `sortrank`, `typename`, `typedir`, `isdefault`, `defaultname`, `issend`, `arcsta`, `sendrank`, `moresite`, `siteurl`, `sitepath`, `description`, `keywords`, `seotitle`, `modname`, `addcon`, `nativeplace`, `display`, `displaytype`, `corank`, `en_name`)
    VALUES
    ('$reid', '$topid', '$sortrank', '$typename', '$typedir', '$isdefault', '$defaultname', '$issend', '$arcsta', '$sendrank', '$moresite', '$siteurl', '$sitepath', '$description', '$keywords', '$seotitle', '$modname', '$addcon', '$nativeplace', '$display', '$displaytype', '$corank', '$en_name')";
  3. 用同样的方法修改编辑栏目的处理文件:/dede/catalog_edit.php,找到 UPDATE 语句,在 SET 后面添加 en_name='$en_name'

在模板中调用英文名

你可以在任何模板文件中通过以下标签调用英文名了:

{dede:field.en_name function='htmlspecialchars(@me)'/}

优点:

  • 功能强大:可以创建任意多的自定义字段。
  • 逻辑清晰:字段名 en_name 的用途一目了然。
  • 调用灵活:可以在所有支持 {dede:field} 的地方调用。

缺点:

  • 操作复杂:需要修改数据库和后台文件,对新手有一定门槛。

总结与建议

特性 方法一 (使用 keywords) 方法二 (自定义字段)
实现难度 ⭐ (非常简单) ⭐⭐⭐ (需要数据库和代码知识)
维护性 ⭐⭐ (功能混杂) ⭐⭐⭐⭐⭐ (功能清晰)
灵活性 ⭐⭐ (调用受限) ⭐⭐⭐⭐⭐ (完全灵活)
推荐场景 个人博客、小型网站,对英文名需求不复杂。 企业官网、多语言网站、对代码规范性要求高的项目。

给你的建议:

  • 如果只是偶尔一两个栏目需要英文名,或者不想动数据库,直接使用方法一,最快最省事。
  • 如果你的网站需要长期、规范地使用英文名,并且可能还需要其他自定义属性(比如栏目副标题、图标等),强烈推荐使用方法二,它是一劳永逸的解决方案。
-- 展开阅读全文 --
头像
织梦如何采集ajax动态数据?
« 上一篇 2025-12-21
政府教育局整站网站dede模板哪里下载?
下一篇 » 2025-12-21

相关文章

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

目录[+]