当前位置: 首页 > WordPress > 正文

WordPress 优化Title、Description和Keywords

WordPress 优化Title、Description和Keywords

不少童鞋都喜欢安装诸如All in one seo 这样的优化插件,其实,这样的WordPress插件无非就是优化 Title,Meta的Description和Keywords。当然了,有不少免费主题在初期开发的时候,都没有优化Description和 Keywords。

Title 优化

Title 的优化很简单,只要使用下面的代码替换header.php文件中默认的Title调用代码就可以啦:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<title><?php
	global $page, $paged;
	$site_description = get_bloginfo( 'description', 'display' );
 	if ($site_description && ( is_home() || is_front_page() )) {
		bloginfo('name');
		echo " - $site_description";
	} else {
		echo trim(wp_title('',0));
		if ( $paged >= 2 || $page >= 2 )
			echo ' - ' . sprintf( __( '第%s页' ), max( $paged, $page ) );
		echo ' | ' ;
		bloginfo('name');
	}
?></title>

以上代码的特色:

1.如果设置了网站副标题,就像是副标题:倡萌的自留地 – 专注于WordPress主题开发

2.如果文章或存档目录有分页,显示分页:WordPress 优化 Description和Keywords – 第2页 | 倡萌的自留地

Description和Keywords优化

使用下面的代码替换header.php文件中默认的Description和Keywords调用代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php if (is_home() || is_front_page())
	{
	$description = "输入首页的描述文字";
	$keywords = "输入首页的关键词";
	}
	elseif (is_category())
	{
	$description = strip_tags(trim(category_description()));
	$keywords = single_cat_title('', false);
	}
	elseif (is_tag())
	{
	$description = sprintf( __( '与标签 %s 相关联的文章列表'), single_tag_title('', false));
    $keywords = single_tag_title('', false);
	}
	elseif (is_single())
	{
     if ($post->post_excerpt) {$description = $post->post_excerpt;} 
	 else {$description = mb_strimwidth(strip_tags($post->post_content),0,110,"");}
    $keywords = "";
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {$keywords = $keywords . $tag->name . ", ";}
	}
	elseif (is_page())
	{
	$keywords = get_post_meta($post->ID, "keywords", true);
	$description = get_post_meta($post->ID, "description", true);
	}
	?>
<meta name="keywords" content="<?php echo $keywords ?>" />
<meta name="description" content="<?php echo $description?>" />

用上述的方法,Keywords就是文章的tags,Description是发表日志时的摘要,如果没有添加摘要,就是该文章截取110个字作为摘要。

由于Page页面不支持填写标签tag和摘要,所以借助自定义字段来输出关键词和描述。使用字段 keywords 添加关键词,使用字段 description 添加描述文字。

注:本文的代码最后更新于 2013-4-24。

转自:http://www.cmhello.com/wordpress-description-and-keywords-seo.html

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SEO WordPress的Description、Keywords和Title(完整版)

且看之前的两篇文章,关于SEO WP博客的DescriptionKeywordsTitle。(有什么不明白的话也可看这两篇文章,有详细的分析。)

最近又挺多童鞋过来问要关于Page页面和分类页面的Description和Keywords。研究了一下,终于通了。完整版诞生。功能可与All in One SEO 插件相媲美。这下你们是可以彻底丢掉All in One SEO 插件了。

推荐的修改方法:

在header.php,原始的title是这样的:

<title><?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title>

修改为:

<?php include_once("desc.php"); ?>

你只要把下面的代码保存在desc.php就OK了。(如果有中文的话,记得另存为文件的编码是UTF-8。切记)。把desc.php上传到你的主题的目录下。

SEO WordPress的Description、Keywords和Title(通用版)

Title是覆盖所有的页面的了。通用版的Description和Keywords就只有首页和文章页面的。

把下面的代码另存为desc.php就行了。细节问题自行改动。

<!--Title Begin, By Lc.-->
<?php if ( is_home() ) { ?><title><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?></title><?php } ?>
<?php if ( is_search() ) { ?><title>搜索结果 | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_single() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_page() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_category() ) { ?><title><?php single_cat_title(); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_month() ) { ?><title><?php the_time('F'); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if (function_exists('is_tag')) { if ( is_tag() ) { ?><title><?php  single_tag_title("", true); ?> | <?php bloginfo('name'); ?></title><?php } ?> <?php } ?>
<?php
##定义一个函数.解决截取中文乱码的问题
if (!function_exists('utf8Substr')) {
 function utf8Substr($str, $from, $len)
 {
     return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
          '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
          '$1',$str);
 }
}
if ( is_home() ){
    $description = "我们身处急速上涨的数据海洋中…我们如何避免信息的没顶之灾呢?柳城博客(Lc.)∷关注生物信息学,分享学习Linux、PHP+Mysql、Perl/BioPerl等的心得,努力在数据的海洋里畅游。";
    $keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
elseif ( is_single() ){
    if ($post->post_excerpt) {
        $description  = $post->post_excerpt;
    } else {
   if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
    $post_content = $result['1'];
   } else {
    $post_content_r = explode("\n",trim(strip_tags($post->post_content)));
    $post_content = $post_content_r['0'];
   }
         $description = utf8Substr($post_content,0,220);  
  }

    $keywords = "";     
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ",";
    }
}
?>
<?php echo "\n"; ?>
<meta name="description" content="<?php echo trim($description); ?>" />
<meta name="keywords" content="<?php echo rtrim($keywords,','); ?>" />
<!--Description & Keywords End, By Lc.-->

SEO WordPress的Description、Keywords和Title(完整版)

加入Page页面和分类页的的Description和Keywords。强大!!!!首先当然要知道各个分类页面和Page页面的ID了。

 <!--###Title Begin, By Lc.###-->
<?php if ( is_home() ) { ?><title><?php bloginfo('name'); ?> | <?php bloginfo('description'); ?></title><?php } ?>
<?php if ( is_search() ) { ?><title>搜索结果 | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_single() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_page() ) { ?><title><?php echo trim(wp_title('',0)); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_category() ) { ?><title><?php single_cat_title(); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if ( is_month() ) { ?><title><?php the_time('F'); ?> | <?php bloginfo('name'); ?></title><?php } ?>
<?php if (function_exists('is_tag')) { if ( is_tag() ) { ?><title><?php  single_tag_title("", true); ?> | <?php bloginfo('name'); ?></title><?php } ?> <?php } ?>
<?php
##定义一个函数.解决截取中文乱码的问题###
if (!function_exists('utf8Substr')) {
 function utf8Substr($str, $from, $len)
 {
     return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
          '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
          '$1',$str);
 }
}
if ( is_home() ){
    $description = "我们身处急速上涨的数据海洋中…我们如何避免信息的没顶之灾呢?柳城博客(Lc.)∷关注生物信息学,分享学习Linux、PHP+Mysql、Perl/BioPerl等的心得,努力在数据的海洋里畅游。";
    $keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
elseif ( is_single() ){
    if ($post->post_excerpt) {
        $description  = $post->post_excerpt;
    } else {
   if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
    $post_content = $result['1'];
   } else {
    $post_content_r = explode("\n",trim(strip_tags($post->post_content)));
    $post_content = $post_content_r['0'];
   }
         $description = utf8Substr($post_content,0,220);  
  }

    $keywords = "";     
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ",";
    }
}
###这里是分类页面。自行改变is_category的ID。###
elseif ( is_category(34) ){
    $description = "生物信息学(Bioinformatics)是一门利用计算机技术研究生物系统之规律的学科。通过实例分析,介绍生物信息学的入学知识,包含生物信息学的数据库等。重点是NCBI的中文教程。";
    $keywords = "生物信息学,Bioinformatics,NCBI,影响因子";
}
###这里是Page页。同上。多个页面的话自行添加就是###
elseif ( is_page(2) ){
    $description = "关于柳城博客(Lc.)的介绍,联系方式,以及网站历程。柳城博客(LIUCHENG.NAME)∷努力在数据的海洋里畅游。";
    $keywords = "生物信息学,Perl,Bioperl,PHP,Mysql,Linux,NCBI,摄影";
}
elseif ( is_page(135) ){
    $description = "柳城博客(Lc.)的留言板。有什么问题或建议请在这里留言! 我会尽快回复~ 感谢您的支持!!";
    $keywords = "柳城博客,Lc.,留言板,留言本";
}
?>
<?php echo "\n"; ?>
<meta name="description" content="<?php echo trim($description); ?>" />
<meta name="keywords" content="<?php echo rtrim($keywords,','); ?>" />
<!--###Description & Keywords End, By Lc.###-->

~完。

转自:http://liucheng.name/1127/

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

让WordPress自动添加Description和Keywords

鉴于keyword在SEO中的关键性,如果我想给我的每篇日志前面都加上keywords。具体实现办法如下:每篇文章的内容不同,我们该如何让 wordpress自动添加文章描述和关键词呢?其实办法很简单,我们只需要在模板头部添加如一段 PHP代码,让wordpress自动识别页面是首页还是文章页,当然也可以识别分类页、标签页这些。再分别为不同的页面添加不同的 Description和Keywords。

如果是文章页面,Description就自动截取文章的前220字符作为页面的描述,文章的tag就作为页面的关键词。Description是不会有乱码的哦。

1. 打开你的模板文件header.php,在最前面添加如下PHP代码:

<?php
//判断是否为首页
if (is_home()) {
    $description = '这里填写你的博客首页的描述,最多220字符';
    $keywords = '这里填写你的博客首页的关键词,用英文逗号分开';
//判断是否为文章页
} else if (is_single()) {
    if ($post->post_excerpt) {
        $description = $post->post_excerpt;
    } else {
        $description = mb_strimwidth(
        strip_tags(apply_filters('the_content',$post->post_content))
       ,0,220);
    }
    $keywords = '';
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ',';
    }
//判断是否为分类页
} else if (is_category()) {
    $description = category_description();
}
?>

2. 查找标签:
</head>
3. 在前面加入
<meta name=”keywords” content=”<?php echo $keywords; ?>” />
<meta name=”description” content=”<?php echo $description; ?>” />
4. 大功告成!

补充:

网上有些文章提到的用如下代码截断文章办法其实不行,对于中文来说会产生乱码,甚至导致整个页面乱码:
$description = substr(strip_tags($post-&gt;post_content),0,220);

而如果我们用mb_strimwidth函数就不会了
$description = mb_strimwidth(
strip_tags(apply_filters(
‘the_content’,$post->post_content)
),6,220);

转自:http://www.wei-blog.com/archives/604.html

 

WordPress 优化Title、Description和Keywords:目前有2 条留言

发表评论


快捷键:Ctrl+Enter