September 7th, 2007

DEDE实现“文章标题-栏目名称-网站名”

Category: SEO, 网站设计, Author: 阿七, Popularity: 14% [?]

刚才在网站上收集到的文章,整合: 

第一种:

在/include/inc_archives_view.php文件中。
查找tp.typedir,然后替换成tp.typedir,tp.typename。
最后在文章模板中用{dede:field name=’typename’/}调出来。这样就OK啦。。

第二种:

就“{dede:field name=’title’/}-{dede:field name=’typename’/}-{dede:global name=’cfg_webname’/}”这样就可以显示啦。

第三种:

本来想修改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:filed name=’****’ /}这种形式,因为在archives表及其附加表中没有栏目名称这个字段。那么,我们如何在文章页显示栏目名称呢?我们可以用有附加函数的标签。那么我们首先需要自己编写一个函数,用来处理标签里的内容。

function My_GetCName($typeid){
   $dsql = new DedeSql(false);
   $row = $dsql->GetOne(“select typename From #@__arctype where ID=$typeid; “);
   return $row['typename'];
}

将这个函数加到 网站目录\include\inc_functions.php 这个文件中。

在文章页模版中需要引用栏目标题的地方加入这个标签。
{dede:field name=’typeid’ function=’My_GetCName(@me)’/}

什么?上面的文章不过瘾?我还特意准备了这些:

Tags:, .
评论数量(3) | Add Comments
本文网址:http://blog.designlinks.cn/seo/dede-title.html

3 Comments so far

» You can leave a response or Trackback .

  1. Gravatar Icon 西瓜网 Says:

    ***因为您的高质量文章,我们会一直关注您的作品,引用之前我们会申请您的许可。

    ***

    Beach回复:
    Thanks.
    不過不要打一些廣告…

  2. Gravatar Icon echoray Says:

    试过了 不过怎么试都不起作用,还是标题加网站名,就是不出栏目
    还有,你的 ‘ 这个符号是全角的吧

  3. Gravatar Icon blindeye Says:

    试过了,好像不起作用,不知道是不是哪里搞错了

leave a reply