完美seo优化wordpress标题关键词和描述 – 觉唯

一提到wordpress的优化问题,大家都不可不提到标题关键字和描述的优化,虽然现在搜索引擎已经表示meta关键字和meta描述不再像以前那么重要了。但我们还是相信它们在搜索引擎排名的重要性。曾经一度盛传的一个插件 all in one seo pack就可以完成这些seo优化,但是对于这个插件有部分博主表明对百度的搜索引擎不是很友好而且占资源,其实我们可以换个角度,我们可以利用这个插件的原理,自己用代码实现seo优化,这样子既可以减少更多的插件的使用,为我们的wordoress减肥;又可以达到我们的优化目的。好了,一起看看代码,将以下代码添加到主题的head标签内替换掉原主题的相关内容即可:

<?php if (is_home()){
		$keywords = "觉唯,前端开发,前端设计,网页设计,创意,html,css,javascript";
		$description = "觉唯前端,专注web前端开发和用户体验设计,享受其带来的乐趣 - http://www.jiawin.com";
		} elseif (is_single()){
			if ($post->post_excerpt) {
				$description = $post->post_excerpt;
				} else {
					$str = csubstr(strip_tags($post->post_content),0,220);
					$str = trim($str);
                                        $str = strip_tags($str,"");
                                        $str = ereg_replace("\t","",$str);
                                        $str = ereg_replace("\r\n","",$str);
                                        $str = ereg_replace("\r","",$str);
                                        $str = ereg_replace("\n","",$str);
                                        $str = ereg_replace(" "," ",$str);
					$description = trim($str);
					}
					$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?>" />
<title><?php
	global $page, $paged;
	wp_title( '|', true, 'right' );
	bloginfo( 'name' );
	$site_description = get_bloginfo( 'description', 'display' );
	if ( $site_description && ( is_home() || is_front_page() ) )
		echo " | $site_description";
	if ( $paged >= 2 || $page >= 2 )
		echo ' | ' . sprintf( __( 'page %s' ), max( $paged, $page ) );
	?></title>

注:截取文章内容为description时将自动删除所有空格和换行
添加完后在前台刷刷看看效果吧,是不是已经出来了。嘿嘿……先别开心哦,需要实现meta部分的完美优化,还得一个步骤哦。我们细心点看看meta描述这一部分,可以多看几篇文章,就发现其中的一个问题:当编码为utf-8的时候,description的截取内容末尾处有时候会变成乱码。这是为什么呢?因为description在截取文章内容的时候,是按照字符(例子默认设置为220)来计算的,我们都知道wordpress模板的字符集是utf-8,它对于英文来说是一个字母一个字节(8位)来编码,而中文却是一个汉字三个字节(24位)来编码。所以截断的函数只会判断在多少字节的地方去截,如果到了那个地方一个汉字只显示了三分之一或者三分之二的时候,那个汉字就不能完整显示,而函数又不能很智能的多截一个字节或者少截一个,怎么办?于是就产生了乱码。所以,我们需要对替换截断的函数作相对应的处理。
在主题的模板函数(functions.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);
}

到这里已经完美解决,本文所用的方法是从网上收集整理出来的,希望对各位有用。本人入门尚浅,如有不正确之处,望请高手纠正,欢迎(轻点)拍砖。

喜欢我们的文章请您与朋友分享:

更多

除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:觉唯 >> 完美seo优化wordpress标题关键词和描述
本文地址:http://www.jiawin.com/seo-wordpress-meta/ + 复制链接

随意打赏

提交建议
微信扫一扫,分享给好友吧。