优化SEO中的Description使用技巧与解决方案 在SEO优化过程中,description的合理运用至关重要。对于SEO新手而言,可能缺乏这方面的经验,有时甚至会选择不写description。
然而,不写description虽然可能在某些情况下效果更好,但它会导致一个问题:无法在文章列表页调出文章简介,从而影响页面的美观和功能性。
例如,以下代码展示了如何在列表页中调用文章标题、简介以及其他信息:

{dede:list pagesize='10'}
[field:title/]
[field:description/]...
作者:[field:writer/]
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
{/dede:list}
    
如果未填写description字段,那么文章简介部分将会显示为空白,严重影响用户体验和页面整体质量。
那么,我们该如何解决这一问题呢?以下是几种可行的解决方案。 一种常见方法是截取文章正文的前100个字符作为简介。这需要结合两个函数:cn_substr(用于截取字符串)和html2text(用于将HTML内容转换为纯文本)。
测试时可以使用以下代码:

[field:body function="cn_substr(html2text(@me),200)"/]
    
然而,这种方法可能会失效,因为body和description通常存储在不同的数据库表中。因此,我们需要从程序层面入手来解决问题。
打开include文件夹下的extend.func.php文件,并添加以下代码:

// 获取单篇文档body
function GetOneArchiveBody($aid, $length)
{
    global $dsql;
    $aid = trim(ereg_replace('[^0-9]', '', $aid));
    $body = '';
    $query = "Select art.body From `dede_addonarticle` art, `dede_archives` arc where art.aid='$aid' and art.aid=arc.id ";
    $arcRow = $dsql->GetOne($query);
    if (!is_array($arcRow)) {
        return $body;
    }
    if (isset($arcRow['body'])) {
        $body = cn_substr(html2text($arcRow['body']), $length);
    }
    return $body;
}
    
完成上述修改后,在前台模板中可以通过以下方式调用文章简介:

{dede:list pagesize='10'}
[field:title/]
[field:id function="GetOneArchiveBody(@me,200)"/]...
作者:[field:writer/]
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
{/dede:list}
    
通过以上步骤,即使没有手动填写description字段,系统也能自动提取文章正文的一部分作为简介,从而保证了页面内容的完整性和用户体验的提升。
这种方法不仅解决了description空白的问题,还为SEO优化提供了更多可能性,使搜索引擎能够更好地理解页面内容,提高排名表现。
在实际应用中,请根据具体需求调整截取长度等参数,以达到最佳效果。