对于多层级的栏目列表页,可以采用“二级栏目名_一级栏目名_网站名”的形式;而内容页则建议使用“文章标题_二级栏目名_一级栏目名_网站名”的结构。
这种写法更适合结构较为简单的网站,因为每个栏目实际上都需要单独设置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效果。同时,这种方法也减少了手动编辑的工作量,提升了开发效率。