打印本文 打印本文 关闭窗口 关闭窗口
DeDeCMS去除二级栏目标题title中斜杠的技巧
作者:武汉SEO闵涛  文章来源:本站原创  点击数2174  更新时间:2011/5/31 9:14:18  文章录入:mintao  责任编辑:mintao
     一直使用DeDe CMS,功能的确非常强大的,各种标签、自定义功能也非常灵活。但是有一个问题一直困扰着我,那就是二级栏目页面的title是“一级栏目名称/二级栏目名称_网站名称”的显示形式,看着非常的不爽,尤其是中间的那个“/”。总想如何改改源文件去掉这个斜杠或弄成其它形式,可是看了半天代码也不知道该在哪里改,水平太差啊……到DeDe论坛去搜,看到以前就有人问如何去掉这个斜杠,但没人回答。

        经过反复试验,一直也没有一个好的办法,也有过一个高人给过一个代码:

{dede:field name='position' runphp='yes'}
    $tc="_"; //分隔符
    $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
    @me=html2text(@me); //去除html标签
    $tf=split($tw,@me); //分解成数组
    for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
        $tk.=trim($tf[$ta]).$tc;
    }
    $tk=substr($tk,0,-1);
    @me=$tk; //赋值给@me
{/dede:field}

        这个代码可以解决一下问题,不过还是有个缺陷,就是一个列表页面数大于1之后,其他页面就不能显示了,变成“_网站名称”,后来在管理广告的时候给了我一个启示,是否可以通过DeDe自定义宏标记的功能进行修改,去掉斜杠。

         在自定义标记页面增加一个标记,“所属栏目”选择二级栏目,“标记名称”填“title”,“正常显示内容”填上希望在该栏目页面显示的标题,然后提交。把二级栏目依次按上述方法添加标记。

         打开dede列表模板,将 <title>{dede:field name=’title’/} - {dede:global name=’cfg_webname’/}</title>替换为:<title>{dede:mytag name=’title’/} - {dede:global name=’cfg_webname’/}</title>然后重新生成HTML。


        添加宏标记这种方法还有一个优点就是对于优化标题是比较灵活的,可以自由设定栏目的title的显示内容,而不一定非得是栏目名称,能自定义可以说是其最大的一个优点了,也不枉费自己的一番劳动给逐个添加。

        不过这个方法有一点千万要记得注意:以后新增加栏目的时候一定要为其新增一个宏标记,否则title显示不正常。
打印本文 打印本文 关闭窗口 关闭窗口