织梦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} >
这种方法可以完全控制分隔符的显示位置和样式,适合对导航有特殊要求的模板。
以上四种方法可以根据实际需求选择使用,推荐优先使用方法二或方法三,避免修改核心文件导致升级困难。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
