dede position如何修改?

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

"Position" 通常指的是我们在文章详情页或列表页看到的面包屑导航,首页 > 公司简介 > CEO致辞,修改它主要是为了优化网站的 SEO 结构和提升用户体验。

dede position 修改
(图片来源网络,侵删)

修改 "position" 主要涉及以下几个层面,我会从简单到复杂,逐步为您讲解:


修改面包屑导航的显示文字(最常用)

这是最常见的修改需求,比如把 "首页" 改成 "首页",把 "公司简介" 改成一个更友好的名字,如 "关于我们"。

修改首页名称

首页的名称通常由网站后台的全局变量控制。

  • 操作路径:登录 DedeCMS 后台 -> 系统 -> 系统基本参数 -> 核心设置
  • 找到选项主页链接名称
  • 修改方法:在这里输入您希望在首页显示的文字,"网站首页" 或 "Home",然后点击 "保存修改"。

修改栏目名称

面包屑中的栏目名称直接对应于栏目的“栏目名称”。

dede position 修改
(图片来源网络,侵删)
  • 操作路径:登录 DedeCMS 后台 -> 核心 -> 栏目管理
  • 修改方法
    1. 找到您想要修改的栏目,点击后面的 [修改] 按钮。
    2. 在栏目编辑页面,找到 栏目名称 这一栏,输入您想要的新名称。
    3. 点击 确定 保存即可。

注意:修改栏目名称后,所有该栏目下的文章列表页和内容页的面包屑都会自动更新。


修改面包屑导航的 HTML 结构和样式

如果您想改变面包屑的样式,比如去掉 > 符号,或者想给面包屑的每个部分加上链接,或者想用 <span> 包裹起来方便 CSS 控制,就需要修改模板文件。

找到模板文件

面包屑导航通常在文章内容页和列表页的模板中。

  • 页模板:默认路径为 /templets/default/article_article.htm
  • 栏目列表页模板:默认路径为 /templets/default/list_栏目ID.htmlist_1.htm
  • 首页模板:默认路径为 /templets/default/index.htm

定位面包屑代码

在这些模板文件中,找到生成面包屑的代码,它通常是这样的:

dede position 修改
(图片来源网络,侵删)
<div class="position">
    <strong>当前位置:</strong>
    {dede:field name='position'/}
</div>

这里的 {dede:field name='position'/} 就是核心的标签,它会自动生成类似 "首页 > 公司简介 > CEO致辞" 这样的路径。

修改标签以改变样式和结构

{dede:field name='position'/} 标签本身有一些属性可以调整。

示例1:去掉最后的文章标题

有时候我们不希望面包屑的最后一项是文章标题本身(因为标题太长且与 <h1> 标题重复),可以通过 notype 属性实现。

{dede:field name='position' notype='yes'/}

这会生成:首页 > 公司简介

示例2:自定义分隔符

默认分隔符是 >,你可以改成 >>、 或者其他任何符号。

{dede:field name='position' runphp='yes'}
    @me = str_replace(' > ', ' / ', @me);
{/dede:field}

上面的代码会将 > 替换为 。

示例3:完全自定义 HTML 结构(高级用法)

runphp 还不能满足需求,可以使用更灵活的 {dede:field name='position'/} 的底层写法。

<div class="breadcrumb">
    <a href='{dede:global.cfg_cmsurl/}/'>首页</a>
    {dede:field name='position' runphp='yes'}
        $tcstr = @me;
        $tcstr = ereg_replace(' > ', ' <span class="separator">></span> ', $tcstr);
        @me = $tcstr;
    {/dede:field}
</div>

代码解析

  1. <a href='{dede:global.cfg_cmsurl/}/'>首页</a>:我们手动写出首页链接,方便单独控制样式。
  2. runphp='yes':开启 PHP 运行功能。
  3. ereg_replace(' > ', ' <span class="separator">></span> ', $tcstr);:这是核心代码,它把 > 替换成了一个带有 span 标签的版本。
  4. @me = $tcstr;:将处理后的结果赋值给 @me,最终输出。

这样,您就可以在 CSS 中这样定义样式了:

.breadcrumb a {
    color: #666;
    text-decoration: none;
}
.breadcrumb a:hover {
    color: #f00;
    text-decoration: underline;
}
.breadcrumb .separator {
    color: #ccc;
    margin: 0 8px;
}

修改栏目类型以改变 "position" 的行为

在 DedeCMS 中,不同类型的栏目,其 "position" 的表现和链接可能不同。

  1. 外部链接:如果某个栏目被设置为“外部链接”,那么面包屑中该栏目的链接就会指向你设置的外部 URL,而不是本站的栏目列表页。
  2. 单页频道:如果栏目是“单页频道”,面包屑中的链接会指向该单页的内容页。

修改方法

  • 路径:核心 -> 栏目管理 -> 找到对应栏目 -> [修改]
  • 在栏目设置中,找到 栏目类型,选择合适的类型即可。

修改数据库(终极方案,不推荐)

如果以上方法都无法满足需求,或者网站数据出现异常导致 position 显示错误,你可能需要直接修改数据库。此操作风险极高,请务必提前备份数据库!

position 的信息主要存储在 dede_archives (文章表) 和 dede_arctype (栏目表) 中。

修改文章的 position

dede_archives 表中,position 字段存储了文章的完整路径。

  • 操作:登录你的数据库管理工具(如 phpMyAdmin),找到 dede_archives 表。
  • SQL 示例:如果你想修改 ID 为 10 的文章的 position,可以这样更新:
    UPDATE dede_archives SET position = '1,2,5' WHERE id = 10;

    这里的 1,2,5 是栏目 ID 的组合,表示该文章属于一级栏目ID为1的二级栏目ID为2的三级栏目ID为5的栏目,这个路径必须和 dede_arctype 表中的 topid 字段结构一致。

修改栏目的 position

dede_arctype 表中,topidreid 字段定义了栏目的层级关系,这共同构成了栏目的 position。

  • topid:顶级栏目ID,如果栏目本身就是顶级,则 topid 为0。
  • reid:上级栏目ID。

修改这两个字段会改变栏目的层级,从而影响其下所有文章的 position,这个操作非常复杂,通常不建议直接操作。

总结与建议

修改需求 推荐方法 难度 风险
修改首页/栏目显示文字 后台系统参数/栏目管理
修改面包屑样式(如分隔符) 修改模板文件 ({dede:field name='position'/})
去掉面包屑中的文章标题 使用 notype='yes' 属性
修改栏目链接行为 修改栏目类型(外部链接/单页)
数据异常或特殊需求 直接修改数据库 极高

对于绝大多数用户来说,层面一和层面二已经足够解决 99% 的 "position" 修改问题,请优先尝试这些方法,只有在万不得已的情况下才考虑层面四。

-- 展开阅读全文 --
头像
dedecms dede sql
« 上一篇 2025-12-27
c语言提供的合法的关键字是(
下一篇 » 2025-12-27

相关文章

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

目录[+]