有些 WordPress 主题提供的 keywords 和 description 这两个 meta 标签一可能会做得很差,或者根本就不提供,这样不利于 SEO 。本文将指导你如何给主页、分类、页面以及文章页添加单独的 Description 和 Keywords 。
很多人都在用 All in One SEO 插件解决这个问题,但是又有很多人说这个插件不好。大不了咱就自己用代码实现吧。
下面提供博客设置 keywords 和 description 的代码,将以下代码添加至 WordPress 主题 header.php 的<head></head> 之间,最后用 UTF-8 编码另存为,否则中文会乱码:
<?php $description = ''; $keywords = ''; if (is_home() || is_page()) { // 将以下引号中的内容改成你的主页 description $description = "博客描述"; // 将以下引号中的内容改成你的主页 keywords $keywords = "WordPress, 博客, 编程"; } elseif (is_single()) { $description1 = get_post_meta($post->ID, "description", true); $description2 = str_replace(" ","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8')); // 填写自定义字段 description 时显示自定义字段的内容,否则使用文章内容前 200 字作为描述 $description = $description1 ? $description1 : $description2; // 填写自定义字段 keywords 时显示自定义字段的内容,否则使用文章 tags 作为关键词 $keywords = get_post_meta($post->ID, "keywords", true); if($keywords == '') { $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag ) { $keywords = $keywords . $tag->name . ", "; } $keywords = rtrim($keywords, ', '); } } elseif (is_category()) { // 分类的 description 可以到后台 - 文章 -分类目录,修改分类的描述 $description = category_description(); $keywords = single_cat_title('', false); } elseif (is_tag()){ // 标签的 description 可以到后台 - 文章 - 标签,修改标签的描述 $description = tag_description(); $keywords = single_tag_title('', false); } $description = trim(strip_tags($description)); $keywords = trim(strip_tags($keywords)); ?> <meta name="description" content="<?php echo $description; ?>" /> <meta name="keywords" content="<?php echo $keywords; ?>" />
以后在写博客文章时只需添加两个自定义栏目 (在文章编辑页面下面,没有就点击右上角的显示选项) 即可,第一个自定义栏目名称为 keywords,栏目值写上这篇文章的关键字。接着再添加第二个自定义栏目,自定义栏目名称为 description,后面的栏目值写上这篇日志的描述。自定义栏目用过一次后,以后再写日志只需在下拉框中选择即可。这样每篇文章都有你自定义的 keywords 和 description 了,你完全可以抛弃 All in One SEO 插件了。
主页 (home) 和页面 (page) 的 description 和 keywords 是用 PHP 代码直接写的,你可将上面的博客的描述改成你的。
分类 (category) 页和标签页 (tag) 的 description 直接取分类或标签的描述,这个可以根据需要在 WordPress 管理后台更改,keywords 则取分类或标签的名称。如果你想手动给每个分类定义 description 和 keywords,可以将第 27-28 行代码改成:
if (is_category('音乐')) { $description = '这里填音乐分类的描述'; $keywords = '这里填音乐分类的关键字,半角逗号隔开'; } elseif (is_category('电影')) { $description = '这里填电影分类的描述'; $keywords = '这里填电影分类的关键字,半角逗号隔开'; } elseif (is_category('戏剧')) { $description = '这里填戏剧分类的描述'; $keywords = '这里填戏剧分类的关键字,半角逗号隔开'; } // 多个分类,复制 9-12 行代码,粘贴到 13 后面行,类似 5-12 行,改一下分类名称即可 // 使用 UTF-8 编码另存为,替换原来的文件,否则可能会乱码