2010年9月2日星期四

自定义Wordpress的Description和Keywords以及Title

很多插件可以定义Wordpress页面的Description和Keywords以及Title,但我一直认为插件都比较消耗资源,不是万不得已,都会寻找手动方法来替代。Wordpress本身不会对这三个关键字添加内容,但有些朋友会说自己没有安装这类插件,而页面源代码中却已经填写了,这是因为有些WordPress主题已经帮你自动处理了。这里介绍的方法也是通过修改主题文件来达到自定义的目的。具体是修改WordPress主题中的header.php文件,也就是在原来的meta标签上面添加如下内容:

<?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 = "关注软件开发、网站建设、免费资源、网络电话、通讯技术";
$keywords = "源代码,网络电话,通讯技术,VOIP,eyebeam,nonoh,free,gmail,firefox,免费空间,免费域名,SIP,Gizmo5,pfingo,域名,外链,攀索,pansuo";
}
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的slug别名或者ID###
elseif ( is_category('free') ){
$description = "为大家介绍实用的免费主机,免费空间,免费网络硬盘,免费代理,免费电话,免费相册,免费域名,免费邮箱,免费流量统计资源";
$keywords = "免费,免费主机,免费空间,免费网盘,免费代理,免费电话,免费相册,免费域名,免费邮箱,免费流量统计,攀索,pansuo";
}
elseif ( is_category('develop') ){
$description = "关于源代码,编程语言,开发实例,学习教程";
$keywords = "C,C++,VC,源代码,编程,编码,程序,源程序";
}
elseif ( is_category('website') ){
$description = "域名注册、空间申请、网站程序、推广策划、SEO";
$keywords = "网站运营,建站经验,搜索优化,网站推广,网页设计";
}
elseif ( is_category('voip') ){
$description = "攀索之路,pansuo,网络电话,免费电话,免费打电话,免费发短信";
$keywords = "网络电话,免费电话,免费打电话,免费发短信,VOIP,SIP,nonoh,betamax,eyebeam,x-lite,pfingo,freecall,sms,callback";
}
elseif ( is_category('earn') ){
$description = "分享网络赚钱的方法,从零开始学起。";
$keywords = "网络赚钱方法,博客怎么赚钱,网络赚钱项目";
}
elseif ( is_category('software') ){
$description = "分享实用软件,软件使用方法";
$keywords = "网络软件,系统工具,聊天软件,图形图像,多媒体,FTP";
}
elseif ( is_category('telecom') ){
$description = "移动通信,GSM,WCDMA,LTE,2G,3G,网络优化,通信工程";
$keywords = "移动通信,通信工程师,通信人才,GSM,WCDMA,LTE,2G,3G,网络优化,通信工程";
}
###这里是Page页。同上。多个页面的话自行添加就是###
elseif ( is_page('about') ){
$description = "关于攀索之路博客的介绍,联系方式,以及网站历程。攀索之路(www.pansuo.com)";
$keywords = "通讯技术,网络电话,免费资源,网络赚钱,软件开发";
}

?>
<?php echo "\n"; ?>
<meta name="description" content="<?php echo trim($description); ?>" />
<meta name="keywords" content="<?php echo rtrim($keywords,','); ?>" />

将原来的Title标签内容改为如下代码:
<?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 } ?>

没有评论:

发表评论