在构建网页时,如果希望避免逐个撰写栏目列表页的标题,可以采用以下形式:{field:seotitle/}_{dede:global.cfg_webname/}。其中,{field:seotitle/}代表该栏目列表的SEO标题。
 
对于多层级的栏目列表页,可以采用“二级栏目名_一级栏目名_网站名”的形式;而内容页则建议使用“文章标题_二级栏目名_一级栏目名_网站名”的结构。
 
这种写法更适合结构较为简单的网站,因为每个栏目实际上都需要单独设置SEO标题,这样不仅没有局限性,还更有利于关键词的优化。
 
接下来,我们将介绍如何在Dedecms中无需修改PHP文件即可直接调用上级栏目名,并获取当前栏目名作为标题。

当前栏目名获取



{dede:type}[field:typename/]{/dede:type}
    


上级栏目名获取



{dede:field.typeid runphp='yes'}
    global $dsql ;
    $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
    $reid = $reid['reid'];
    $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
    @me=$typename['typename'];
{/dede:field.typeid}
    


列表页完整栏目标题写法


以下是列表页标题的完整写法:
 

<title>
{dede:field.typeid runphp='yes'}
    global $dsql ;
    $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
    $reid = $reid['reid'];
    $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
    @me=$typename['typename'];
{/dede:field.typeid}_{dede:type}[field:typename/]{/dede:type}-{dede:global.cfg_webname/}
</title>
    


内容页或文章页标题写法


对于内容页或文章页,只需在前面加上 {field:title/} 即可。例如:

{field:title/}_{dede:field.typeid runphp='yes'}
    global $dsql ;
    $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
    $reid = $reid['reid'];
    $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
    @me=$typename['typename'];
{/dede:field.typeid}_{dede:type}[field:typename/]{/dede:type}-{dede:global.cfg_webname/}
    

通过以上方法,您可以轻松实现Dedecms列表页和内容页标题的动态生成,从而提高网站的SEO效果。同时,这种方法也减少了手动编辑的工作量,提升了开发效率。