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,不然在首页和列表页就会显示一堆乱码。

发表评论

评论列表(4)

  • 枞阳消协博客

    2011.7.12 09:07

    问题解决了,谢谢。

    回复
  • 奈维摩尔

    2010.8.17 00:08

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

    回复
  • 快速减肥方法

    2010.6.27 09:06

    郁闷 不知道是博主的空间慢 还是我的网速慢呀 打开发个言 结果等了半天 嘿嘿

    回复
  • 宝宝

    2010.6.25 09:06

    楼主好啊,你的地方不错啊
    到此一游
    更您加加人气
    暑假快乐

    回复