织梦DedeCMS去掉当前位置栏目分隔符的多种方法

在织梦DedeCMS模板开发中,经常需要调用当前位置(面包屑导航),默认的{dede:field name=’position’/}会在栏目名称后面自动添加“>”分隔符。本文将提供多种去掉或自定义分隔符的解决方案。

方法一:修改typelink.class.php核心文件

找到include文件夹中的typelink.class.php文件,定位到以下代码:

return $this->valuePosition.$this->SplitSymbol;

将其替换为:

return $this->valuePosition

此方法直接去掉了所有分隔符,修改后所有调用当前位置的地方都不会再显示“>”。

方法二:使用runphp截取字符串

在模板中直接使用以下代码,通过runphp属性截取掉最后一个分隔符:

{dede:field name='position' runphp='yes'}
$a=mb_strlen(@me);
@me=cn_substr(@me,$a-2,-1);
{/dede:field}

这种方法不需要修改核心文件,仅对当前调用生效。

方法三:去掉分隔符并移除最后一个文本链接

如果需要彻底去掉“>”符号,并且让最后一个栏目名称不再带有超链接,可以使用以下代码:

{dede:field name='position' runphp='yes'}
$tc=" > ";
$tf=split($tc,@me);
$tn=count($tf);
for($iij=0;$iij<($tn-1);$iij++){
if($iij==($tn-2)){$tf[$iij]=strip_tags($tf[$iij]);}
$tl=$tl.$tf[$iij];
}
@me=$tl;
echo @me;
{/dede:field}

如果还需要保留分隔符,只需将循环中的$tl=$tl.$tf[$iij]替换为:

$tl=$tl."空格分隔符空格".$tf[$iij];

方法四:自定义当前位置调用代码

完全放弃系统自带的position标签,使用以下代码手动构建面包屑导航:

<a href="/">本站首页</a>
{dede:channel type='top' currentstyle="<a href='~typelink~'>~typename~</a> "}
{/dede:channel} >

这种方法可以完全控制分隔符的显示位置和样式,适合对导航有特殊要求的模板。

以上四种方法可以根据实际需求选择使用,推荐优先使用方法二或方法三,避免修改核心文件导致升级困难。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。