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

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

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

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

[php highlight=”10″]

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);
}

[/php]

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

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

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