wordpress去掉title前空格及keywords最后的逗号

wordpress去掉title前空格及keywords最后的逗号,奥夫最近把整个网站重新优化了一遍,去掉不必要的插件和冗长代码,但是wordpress在优化title和keywords以及description时按照网上的方法处理就会出现如下问题:

1.title里文字前面出现空格

2.keywords标签里最后一个关键词后面还有一个逗号

3.部分页面的keywords,description内容为空,有的页面description里有换行

在网上搜索了很久,最后得到了完美解决方法,

WordPress Title优化

<title><?php if (is_home() ) { ?>博客标题<?php } else {?><?php wp_title(”); ?> – 博客标题<?php } ?></title>

这段代码实现的功能就是首页title显示博客标题,其它页面title为“页面名字 – 博客标题”。如果你喜欢“|博客标题”这种形式,可自行修改。

但是使用这种方法有点缺点,就是我说的1问题,title前面出现空格。解决办法:

wordpress后台->外观->编辑->找到functions.php->添加代码

// Removes the spaces from wp_title
function af_titledespacer($title) {
return trim($title);
}
add_filter(‘wp_title’, ‘af_titledespacer’);

$keywords = substr($keywords,0,-2);

WordPress keywords以及description优化
有两种方法

第一种:获取文章的tags作为文章的keywords,把文章摘要(如果没有摘要则截取文章前220字)作为文章的description

第二种:通过WordPress的自定义域功能实现

解决keywords最后一个关键词后出现逗号的方法:

在tag循环外加代码:$keywords = substr($keywords,0,-2);

description里有换行的解决方法:

$description = str_replace(array(“rn”, “r”, “n”,” “), ” “, $description);

这样一些小问题都得以完美解决,最后贴出完整代码:

<title><?php if (is_home() ) { ?>博客标题<?php } else {?><?php wp_title(”); ?> – 博客标题<?php } ?></title>
<?if (is_home()){
$description = “首页描述”;
$keywords = “首页关键词”;
} elseif (is_single()){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
$description = substr(strip_tags($post->post_content),0,220);$description = str_replace(array(“rn”, “r”, “n”,” “), ” “, $description);
}
$keywords = “”;
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . “, “;
}$keywords = substr($keywords,0,-2);
} elseif(is_category()){
$description = category_description();
}
?>
<?php if (is_single()||is_home()) {?>
<meta name=“description” content=“<?=$description?>” />
<meta name=“keywords” content=“<?=$keywords?>” />
<?php } ?>
<?php if (is_page()):
$keywords = get_post_meta($post->ID, “keywords”, true);
if($keywords!=””) echo(“<meta name=”keywords” content=””.$keywords.”” />n”);
$description = get_post_meta($post->ID, “description”, true);
if($description!=””) echo(“<meta name=”description” content=””.$description.”” />n”);
endif;
?>

这样wordpress在优化后就去掉title前空格及keywords最后的逗号了,这样就可以完美的摆脱了All in One SEO等wordpress优化插件了。