我是php的新手,并使用http://aaronrussell.co.uk/legacy/improving-wordpress-the_excerpt/中的以下代码替换the_excerpt()
来电:
function improved_trim_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace('\]\]\>', ']]>', $text);
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
$text = strip_tags($text, '<p>');
$excerpt_length = 80;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words)> $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'improved_trim_excerpt');
我正在使用Brandford Magazine 3.0 theme,并且在我的代码中有两个the_excerpt()
次调用实例。
不知何故第一个电话正在被正确替换,并且正在使用improved_trim_excerpt
按预期正确显示文字,但另一个电话仍然使用旧的the_excerpt()
功能。
我可以在这里找到什么?
答案 0 :(得分:0)
我在任何地方都看不到the_excerpt
...但我猜你是指preg_replace
?如果是这样,请尝试在正则表达式的末尾添加g
标记。这将打开全局模式,因此正则表达式将匹配多次。