在 DedeCMS 中,手机模板和电脑模板是分开的,它们通常位于不同的目录下,
- 电脑模板:
/templets/default/ - 手机模板:
/templets/mobile/
修改手机模板的当前位置,需要操作的是 手机模板目录下的文件。
核心实现方法
手机模板中的当前位置主要通过调用 DedeCMS 的全局 {dede:field name='position'/} 标签来实现,这个标签会根据当前页面的类型(首页、列表页、内容页等)自动生成对应的路径。
下面我们分场景来讲解如何设置和修改。
修改通用模板(如 index_article.htm)
这是最常见的情况,你想修改所有文章列表页、文章内容页等通用页面的当前位置。
-
找到文件 登录你的网站服务器,进入 DedeCMS 安装目录下的
templets/mobile/文件夹。 找到当前手机模板所使用的核心文件,通常是index_article.htm,这个文件是文章系统(文章、图集、软件等)的默认模板。 -
定位代码 打开
index_article.htm文件,使用查找功能(通常是Ctrl+F)搜索{dede:field name='position'/}或当前位置,找到你想要修改的位置。 -
修改代码 默认的
{dede:field name='position'/}标签会生成类似这样的HTML:<a href='http://你的域名/'>主页</a> > <a href='http://你的域名/plus/list.php?tid=2'>栏目名称</a> > <span>文章标题</span>
你可以通过给标签添加属性来自定义它的样式和分隔符。
示例 1:修改分隔符 默认的分隔符是
>,你可以修改成>>或者 等。{dede:field name='position' runphp='yes'} @me = str_replace(' > ', ' >> ', @me); {/dede:field}或者使用更简洁的方式(DedeCMS 5.7+ 版本支持):
{dede:field name='position' separator=' >> '}示例 2:添加样式 你想给当前位置的链接和文字添加一些CSS样式,使其在手机上更美观。
<div class="breadcrumb"> {dede:field name='position'/} </div>然后你可以在CSS文件中定义
.breadcrumb的样式,.breadcrumb { font-size: 12px; color: #999; padding: 10px 5px; line-height: 1.5; } .breadcrumb a { color: #0066cc; text-decoration: none; } .breadcrumb a:hover { text-decoration: underline; }示例 3:隐藏首页链接 如果你不希望显示“主页”链接,可以通过
runphp来处理。{dede:field name='position' runphp='yes'} $a = "<a href='http://你的域名/'>主页</a> > "; $b = str_replace($a, '', @me); @me = $b; {/dede:field}
修改特定页面的当前位置
你可能只想修改首页、某个特定列表页或内容页的当前位置。
-
首页 首页的当前位置通常在
index.htm文件中,如果你想在首页也显示一个固定的面包屑,可以直接在里面写死HTML。<!-- 在 index.htm 中 --> <div class="breadcrumb"> <a href="/">首页</a> </div>注意:首页默认不调用
{dede:field name='position'/},因为它本身就是最顶层。 -
特定列表页
-
方法A:复制并重命名模板
- 复制
templets/mobile/index_article.htm文件,并重命名为list_special.htm。 - 进入后台 -> 模板 -> 默认模板管理 -> 手机模板。
- 找到对应的栏目,在“列表模板”选项中选择你刚刚创建的
list_special.htm。 - 这样,这个栏目就会使用新的模板文件,你可以在里面自由修改当前位置。
- 复制
-
方法B:使用单页模板 如果这个“特定页面”是一个单页(关于我们”),那么它使用的是
article_article.htm模板,直接修改这个文件里的{dede:field name='position'/}即可。
-
常见问题与解决方案
问题1:首页面包屑不显示,或者显示不正确。
- 原因:首页模板
index.htm默认没有调用{dede:field name='position'/}- 解决:如果你想在首页也显示面包屑,直接在
index.htm中手动添加HTML代码,如上所述。 - 解决:如果你想在首页也显示面包屑,直接在
问题2:修改了 index_article.htm 后,前台页面没有变化。
- 原因:
- 模板未更新:DedeCMS 有模板缓存,请进入后台 -> 系统 -> 系统基本参数 -> 性能选项,点击“清除所有缓存”。
- 修改错了文件:确认你修改的是
/templets/mobile/目录下的文件,而不是电脑模板目录。 - 模板引擎问题:检查后台的“模板引擎是否开启”是否为“是”。
问题3:面包屑中的链接地址不对(例如是 /plus/ 而不是 /m/)。
- 原因:这是因为在生成链接时,DedeCMS 默认使用了电脑端的地址规则。
- 解决:通过
runphp来强制替换域名或路径。{dede:field name='position' runphp='yes'} // 将 http://你的域名 替换为 http://你的域名/m @me = str_replace('http://你的域名', 'http://你的域名/m', @me); {/dede:field}注意:如果你的网站是自适应的(通过一个模板同时适配PC和手机),或者使用了域名跳转(访问手机域名自动跳转
/m/目录),那么这个问题可能不存在,如果你的手机站是独立的子域名(如m.yourdomain.com),则无需修改。
| 操作目标 | 涉及文件 | 核心标签/代码 |
|---|---|---|
| 修改通用文章页面包屑 | /templets/mobile/index_article.htm |
{dede:field name='position'/} |
| 修改首页面包屑 | /templets/mobile/index.htm |
手动添加HTML,如 <a href="/">首页</a> |
| 修改特定栏目面包屑 | 复制 index_article.htm 并重命名,或在后台指定模板 |
在指定模板中修改 {dede:field name='position'/} |
| 自定义样式和分隔符 | 在对应模板文件中修改 | {dede:field name='position' separator=' >> '} 或配合 runphp 和CSS |
修改模板后,清除后台缓存 是让修改生效最关键的一步,希望这个详细的指南能帮助你成功设置 DedeCMS 手机模板的当前位置!
