WordPress 3.0摘要格式错乱的修正办法

一时冲动,将本博升级到3.0了,没有在升级前测试兼容性,造成本博部分页面模板出错,其中就有摘要的显示问题。

WP把摘要中所有HMTL标记全过滤了,然后所有文字都挤到了一堆,十分难看,于是手动解决。

在wp-includes目录下找到formatting.php,定位到wp_trim_excerpt这样一个函数,修改如下:


function wp_trim_excerpt($text) {
 $raw_excerpt = $text;
 if ( '' == $text ) {
 $text = get_the_content('');

 $text = strip_shortcodes( $text );

 $text = apply_filters('the_content', $text);
 $text = str_replace(']]>', ']]>', $text);
 $text = strip_tags($text, '<p><br><font><a><div><ol><ul><li><pre>');
 $excerpt_length = apply_filters('excerpt_length', 55);
 $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
 $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
 if ( count($words) > $excerpt_length ) {
 array_pop($words);
 $text = implode(' ', $words);
 $text = $text . $excerpt_more;
 } else {
 $text = implode(' ', $words);
 }
 }
 return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}

其中只修改了$text = strip_tags($text, '<p><br><font><a><div><ol><ul><li><pre>');这段代码。

大致意思是保留部分换行标记,如p,br等,从SEO优化考虑,如果站内链接太多,不建议保留a标记,否则会造成首页大面积导出链接,影响权重,我的博客很少手工做站内链接,所以不考虑这个问题。

根据我的实际情况,我还保留了pre标记,这样可以显示我的一些高亮codes,不然在首页和列表页就会显示一堆乱码。

《WordPress 3.0摘要格式错乱的修正办法》有4个想法

  1. 博主你好,我想请问一下加入这段代码后摘要输出的话应该连DIV定义的样式也能正常在摘要显示的吧。。可是我改了之后。。好像没什么反应。。摘要里依旧不能输出DIV的样式。。怎么办呢。。

发表评论

电子邮件地址不会被公开。