这篇文章介绍无插件为Wordpress添加关键词的优化版方法,可以解决原方法中自定义首页的关键词错误问题。
WordPress便捷易用,全世界约三成的网站使用它进行后台管理。
不过,Wordpress 有一个小缺点,其默认主题样式的html中缺乏关键词(keywords)和描述(description)的微数据(meta)。而这两个参数对于搜索引擎优化(SEO)会产生影响。为提高网站的搜索引擎表现,我们需要对此做出调整。
网上常见的添加方式如下: 在header.php文件(仪表盘>外观>编辑),在<title>标签之后添加如下代码。
<?php
if (is_home()){
$keywords = "首页关键词";
$description = "首页描述";
} elseif (is_single()){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
$description = substr(strip_tags($post->post_content),0,220);
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ", ";
}
}
?>
<meta name="keywords" content="<?=$keywords?>" />
<meta name="description" content="<?=$description?>" />
上述代码大意为:判断如果是首页,则添加首页keywords和description;如果是文章页,则将文章的标签(tag)输出为keywords,并取文章的摘要(excerpt)作为description,如果没有摘要,则取文章前220个字符(注意,不是220个汉字)作为description。
其中“首页关键词”和“首页描述”需要替换为自己网站的相应内容。
这个解决方案有三个小问题。
第一,home仅代表WP自动生成的原始首页,不代表自定义首页。也就是说,如果自定义了首页,使用is_home()判断是否为首页的方法就失效了。这种情况下,应改用is_front_page()。为了使解决方案更具通用性,将判断条件修改为:
if (is_home() or is_front_page()){
//首页描述和关键词赋值
}
第二,缺少回退方案。如果忘记或不需要为文章添加tag标签,则文章页面会缺少keywords关键词值。
第三,网站品牌管理不强。每个网页的描述和关键词都独立取自文章内容或编辑录入,缺少网站整体品牌信息。
上述第二、三两个问题,可通过添加网站通用关键词来解决。
改进代码如下:
<meta name="keywords" content="通用关键词 <?=$keywords?>" />
<meta name="description" content="通用关键词<?=$description?>" />
通用关键词可以是网站名称、网站主营业务等信息。这些信息与文章页信息之间可用 “|”、“-”等符号分开。
优化后的全部代码如下:
<?php
/*
*将摘要变成描述,将标签变成关键词的代码;放在header文件title之后。
*/
if (is_home() or is_front_page()){ // 如果是网站首页
$keywords = "首页关键词"; // 为关键词赋值;请将引号内的文字替换为自己网站的相关内容
$description = "首页描述"; // 为描述赋值;将引号内的文字替换为自己网站的相关内容
} elseif (is_single()){ // 如果是文章页
if ($post->post_excerpt) { // 如果文章有摘要
$description = $post->post_excerpt; // 为描述赋值,
} else { // 其它情况(如果文章没有摘要)
$description = substr(strip_tags($post->post_content),0,220); //取文章前220个字符作为描述
}
$keywords = ""; // 为关键词赋值空字符串
$tags = wp_get_post_tags($post->ID); // 获取文章标签tags
foreach ($tags as $tag ) { // 对于tags数组中的每一个元素进行如下操作
$keywords = $keywords . $tag->name . ", "; // 将数组中的元素添加到
关键词字符串的末尾,并以逗号(注意一定要是英文的逗号)隔开
}
}
?>
<meta name="keywords" content="通用关键词 | <?=$keywords?>" /> // 添加通用关键词,输出关键词
<meta name="description" content="通用描述 | <?=$description?>" /> // 添加通用描述,输出描述
如果你的网站属于品牌推广类,且内容/页面不多,那么,上述解决方案已经完全可以胜任贵站需求了。
如果你的网站属于资讯或博客等靠倚重内容的类型,那么使用tags作为页面关键词的方法很可能并不适合贵站。因为这样处理,混淆了人类阅读和机器阅读的内容,不利于网站内容管理。这种情况下,建议使用自定义字段添加关键词。点击此处阅读介绍添加关键词最优方案的文章。
参考资料:
https://codex.wordpress.org/Meta_Tags_in_WordPress(英文)
https://managewp.com › blog › statistics-about-wordpress-usage (英文)
https://w3techs.com/technologies/details/cm-wordpress/all/all (英文)