如何利用过滤器来实现WordPress 的内链优化,最近在做一个新网站,Google 刚开始收录的时候发现归档页面的排名比文章还高,猜测原因是归档页面获得的内链太多了,因此产生一个把所有的指向归档页面的链接全部加上 rel=”nofollow” 属性的想法。
要达到这个目的,我们完全可以用 WordPress 强大的 filter 来实现。打开主题的 functions.php ,在里面加上以下的代码:
//给标签云里的链接加上 rel="nofollow"
add_filter('wp_tag_cloud', 'cis_nofollow_tag_cloud');
function cis_nofollow_tag_cloud($text) {
return str_replace('
function cis_nofollow_the_tag($text) {
return str_replace('rel="tag"', 'rel="tag nofollow"', $text);
}
//给 wp_list_categories() 生成的链接加上 rel="nofollow"
add_filter( 'wp_list_categories', 'cis_nofollow_wp_list_categories' );
function cis_nofollow_wp_list_categories( $text ) {
$text=stripslashes($text);
$text=preg_replace_callback('||i', 'wp_rel_nofollow_callback', $text);
return $text;
}
//给 the_category() 生成的链接加上 rel="nofollow"
add_filter( 'the_category', 'cis_nofollow_the_category' );
function cis_nofollow_the_category( $text ) {
$text=str_replace('rel="category tag"', "", $text);
$text=cis_nofollow_wp_list_categories($text);
return $text;
}
//给 the_author_post_link 生成的链接加上 rel="nofollow"
add_filter('the_author_posts_link', 'cis_nofollow_the_author_posts_link');
function cis_nofollow_the_author_posts_link ($link) {
return str_replace('
function cis_nofollow_comments_popup_link_attributes () {
echo ' rel="nofollow"';
}
上面的 filter 针对的都是主题开发时一些使用率比较高的函数,基本上已经能满足我的要求了。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
