DEDE實現“文章標題-欄目名稱-網站名”


第1種:

在/include/inc_archives_view.php文件中。
查找tp.typedir,然后替換成tp.typedir,tp.typename。
最后在文章模板中用{dede:field name='typename'/}調出來。這樣就OK啦。。

第2種:

就“{dede:field name='title'/}-{dede:field name='typename'/}-{dede:global name='cfg_webname'/}”這樣就可以顯示啦。


第3種:(推薦)

本來想修改inc_archives_view.php來實現,
后來發現用“position”更簡便。。。(不知道有沒有人發過,現在分享一下,有不足之處還請高手多多指點哦:)
代碼如下:
{dede:field name='title'/}-{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}-{dede:global name='cfg_webname'/}

將以上代碼放在<title></title>之間就可以實現“文章標題-2級欄目-1級欄目-網站名”的形式了。

     {dede:field name='position' runphp='yes'}
$tw=$GLOBALS['cfg_list_symbol']; //調用位置分隔符
@me=html2text(@me); //去除html標簽
$tf=split($tw,@me); //分解成數組
@me=trim($tf[count($tf)-2]);//得到一級欄目名稱
{/dede:field}

第4種:
    用這個辦法,可以實現"三級欄目_二級欄目_一級欄目_網站名稱",即優化,對搜索收錄有好處.

1.將官方原來的排列方式反過來,找到include/typelink.class.php第164行
$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;

修改為:
$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];

接下來將模板的標題標簽
<title>{dede:field.title/} - {dede:global.cfg_webname/}</title>
修改為:
<title>{dede:field.title function='ereg_replace(" - "," - ",@me)'/} - {dede:global.cfg_webname/}</title>
即可。

如果您對欄目中間的連接符不滿意,可以修改include/arc.listview.class.php,找到53行
$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));

把 / 刪除 注意留一個空格 " "
這樣在模板標題標簽部分就可以修改各級欄目間的連接符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM