给wp首页,目录,page页及文章设置不同关键词和描述

  • 14,529 views

给wp首页,目录,page页及文章设置不同关键词和描述. WordPress程序默认的网站描述和关键词有时候并不能满足我们做优化的需求,而且像栏目和page页面时是没有keywords和description的,就算是文章页也是自动截取前220个字的摘要作为网站描述,关键词则是采用文章页的tag作为keyword。这中情况并不友好,不同文章相同的tag那么关键词也是相同的了。

所以,网上有人问怎么给WordPress栏目页设置关键词和描述,也有人问怎么给WordPress的page页面设置关键词,还有人问在怎么给WordPress网站系统的tag页添加关键词和描述等,所以这里就通过《给wp首页,目录,page页及文章设置不同关键词和描述》一文把这些问题集合在一起,统一做个介绍。

代码实现首页、目录、page页及每篇文章设置不同关键词和描述

1、先了解怎么样添加自定义栏目

在编辑文字或者是page独立页面时可以再博客后套右上角点击显示选项—>自定义栏目;然后,在文字底部分别输入新栏目名称为seo_keywords、seo_description和值为 关键词、描述

2、非插件自定义页面关键词和描述

打开你的博客header.php,在<head > </head>之间添加如下代码来实现非插件为wp首页、目录、page页及每篇文章设置不同关键词和描述,其中//后面为代码注释,在复制到header.php时可以将其删掉。
[cc lang="php"]
ID, "seo_description", true);
$seo_description2 = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 140, "...", 'utf-8')); //如果是文章页则首先将文章的自定义栏目名称为seo_description的值作为描述(后台写文章时自己添加自定义,后文会做介绍);若文章没有自定义栏目则自动调用文章前140字作为描述.
$seo_description = $seo_description1 ? $seo_description1 : $seo_description2;
$seo_keywords = get_post_meta($post->ID, "seo_keywords", true);
// 显示自定义字段keywords的值作为页面关键词
if($seo_keywords == '') {
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$seo_keywords = $seo_keywords . $tag->name . ", ";
}
$seo_keywords = rtrim($seo_keywords, ', ');
}
}
// 如果页面没有自定义字段,则调用文章tag作为文章关键词
elseif (is_category()) {
// 判断是否为文章分类目录,是则执行如下操作
$seo_description = category_description();
$seo_keywords = single_cat_title('', false);
}
// 分别以分类描述和分类标题作为description和keywords,这个可以自己的后台—文章>—>分类目录 里面设置.
elseif (is_tag()){
// 判断是否为标签页,若是则执行如下操作
$seo_description = tag_description();
$seo_keywords = single_tag_title('', false);
}
// 分别以tag的描述作为description和tag本身作为自己的keyword,这个页可以自己的后台—文章>—>标签 里面设置.
elseif (is_page()) {
$seo_description1 = get_post_meta($post->ID, "seo_description", true);
$seo_description2 = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 140, "...", 'utf-8'));
// 判断是否为page独立页面,若是则调用自定义字段seo_description的值为描述,否则直接调用page页的前140个字作为描述
$seo_description = $seo_description1 ? $seo_description1 : $seo_description2;
$seo_keywords = get_post_meta($post->ID, "seo_keywords", true);
if($seo_keywords == '') {
$title = get_the_title($post->ID);
$seo_keywords = $seo_keywords . $title;
//查询seo_keywords值,若为空,即没有添加自定义字段内容时,给seo_keywords字段赋值为该页面的title,以该页面的title作为该page的keyword
}
}
$seo_description = trim(strip_tags($seo_description));
$seo_keywords = trim(strip_tags($seo_keywords));
//去掉字符串左右空格的函数,直接替换对应的$seo_keywords和$seo_description即可,详细内容见php参考手册中的trim()函数用法.
?>

[/cc]

3、解决可能出现的乱码问题

WordPress板子一般都是utf-8字符集的,一个英文对utf-8字符集来说是8位,而一个中文汉字则为24位。在函数截取字符长度时只会按照多少字节去截取,所在在php用substr截取中文时经常会出现乱码,如有的地方恰好完全显示整个汉字还好,若是截取处事一个汉字的三分之一或者三分之二,那汉字就显示不全了。函数不能够智能地判断堵截一个字符或者少截一个字符来不全显示,于是,我们就等对函数做相应的处理,把下面代码添加到你的主题的functions.php中即可解决乱码问题。
[cc lang="php"]
// 解决utf8截取乱码问题
function csubstr($string, $beginIndex, $length){
if(strlen($string) < $length){ return substr($string, $beginIndex); } $char = ord($string[$beginIndex + $length - 1]); if($char >= 224 && $char <= 239){ $str = substr($string, $beginIndex, $length - 1); return $str; } $char = ord($string[$beginIndex + $length - 2]); if($char >= 224 && $char <= 239){
$str = substr($string, $beginIndex, $length - 2);
return $str;
}
return substr($string, $beginIndex, $length);
}
[/cc]

4、利用插件给WP页面自定义关键词和描述

说起插件,很多人都不陌生的就是All in One SEO,专业的seo插件,可以去后天搜索安装。还有另一款是WordPress SEO插件,这个插件功能比较全面,推荐使用,它不但可与自定义每个页面的title、keywords和description,而且还能去掉category以及为分类目录和tag 的url后添加 / ,同时能生成谷歌地图。

本文小结:

WordPress插件非常多,这给利用wp建博客的同学带来了方便,但是插件始终会影响到博客的速度,所以,安装多了本人认为不是好事。这里利用WordPress的强大自定义字段功能实现了给wp首页,目录,page页及文章设置不同关键词和描述。若您有更好的方法,也可不妨与大家分享一下。

weinxin
我的微信
分享SEO优化、SEM营销、新媒体知识,交流营销运营经验,提供网站制作、SEO、竞价托管和公众号代运营服务。
王发利
  • 本文由 发表于 2014 年 10 月 13 日
  • 转载请务必保留本文链接:http://wangfali.com/seo/3978.html
什么事千人千面?详解百度千人千面算法! SEO知识

什么事千人千面?详解百度千人千面算法!

什么事千人千面?详解百度千人千面算法!在2020年的时候,百度搜索引擎官方开始上线千人千面算法,其实这个千人千面算法就是根据个人的喜好来展现搜索结果,这算法涉及到了个人的搜索习惯、个人的爱好、个人感兴...
SEO行业名词解释大全 SEO知识

SEO行业名词解释大全

优化网站做SEO,了解seo行业名词必看seo名词解释,明白seo行业、读懂seo名词解释能够帮助我们更好地工作和指导网站优化。在做SEO前先搞清楚这些seo行业名词,我想是很有必要的,今天借助王发利...
B2B网站上Ttitle应该怎么写? SEO知识

B2B网站上Ttitle应该怎么写?

B2B网站上Ttitle应该怎么写?很多中小企业卖家,选择b2b平台做关键词优化在当前来说,是省钱又有效的方法。因为,可以通过利用b2b网站的高权优势,帮助企业快速获得关键词排名和流量,从而提升产品销...
新手如何做好医疗SEO?该怎么做? SEO知识

新手如何做好医疗SEO?该怎么做?

新手如何做好医疗SEO?该怎么做?曾有人问医疗SEO该怎么做,尤其是新手。我想很多老鸟都是从新人走过来的,虽然医疗SEO相对来说是男一点,不过只要有一颗恒心,多学习、选好方向坚持新人也能做好医疗SEO...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  4   博主  0   引用   1
    • 最励志网 最励志网 2

      路过看一下!

      • 百家网络博客 百家网络博客 1

        我的elseif (is_page()){}一直不起作用。。。。。

        • 夏日博客 夏日博客 2

          只设置了首页和内容的关键词,其它的顺其自然了。

        • 来自外部的引用: 1