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,不然在首页和列表页就会显示一堆乱码。
问题解决了,谢谢。
博主你好,我想请问一下加入这段代码后摘要输出的话应该连DIV定义的样式也能正常在摘要显示的吧。。可是我改了之后。。好像没什么反应。。摘要里依旧不能输出DIV的样式。。怎么办呢。。
郁闷 不知道是博主的空间慢 还是我的网速慢呀 打开发个言 结果等了半天 嘿嘿
楼主好啊,你的地方不错啊
到此一游
更您加加人气
暑假快乐