移除WordPress头部最新评论的内联样式


查看你博客的源代码,在head部分有没有看见一下代码?


一开始我以为是那个插件生成的多余代码,后来查找字符才发现竟然是最新评论的widget输出的。
话说正题如何删除这个多余的代码呢?
如果你的博客是wordpress 2.8以前的版本,在functions.php文件增加以下代码即可:

function remove_wp_widget_recent_comments_style() {  
   if ( has_filter('wp_head', 'wp_widget_recent_comments_style') ) {  
      remove_filter('wp_head', 'wp_widget_recent_comments_style' );  
   }  
}  
add_filter( 'wp_head', 'remove_wp_widget_recent_comments_style', 1 ); 

更高版本的WordPress代码的变更导致的上述过滤器修复无法正常工作。在2.8时代中原有的过滤器(wp_widget_recent_comments_style)曾今被移除,2.9时代又加入更名为现在的动作(recent_comments_style),增加在widgets_init中。
所以只需在widgets_init增加一个remove_action删除recent_comments_style动作即可。
事实上,你可以看一下WordPress 3.0和更高版本的TwentyTen主题的源代码,你会发现在functions.php里面可以看见以下代码:

function twentyten_remove_recent_comments_style() {  
    global $wp_widget_factory;  
    remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );  
}  
add_action( 'widgets_init', 'twentyten_remove_recent_comments_style' ); 

复制以上代码到你的functions.php文件中,最新评论的内联样式将被删除。
除此之外如果你不怕折腾你也可以修改wordpress源代码。

关于这段代码的历史:
不知道在何时就有了这段代码,在2.8时代这段代码被去掉了,在2.9时代又出现了,一直到现在。
这段代码出现在这里完全没有意义,我们完完全全可以在CSS里面自定义样式。真不知道是不是wordpress的脑袋秀逗了!也是wordpress代码稀奇古怪的事情之一。

发表评论

电子邮件地址不会被公开。 必填项已用*标注