我的第一个问题:
我正在使用此代码在我的Wordpress上显示摘录。它允许我在摘录中显示标签并且它可以正常工作,但问题是当有一个链接的单词后,我总是在逗号之前得到一个空格。
示例:
<a href="www.google.com">Google</a>, <a href="www.yahoo.com">Yahoo</a>
输出:
谷歌,雅虎
逗号之后的空格是故意的,应该在那里。之前的那个太多了。
有关如何解决此问题的任何提示?
我用来定义摘录的代码:
function new_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, '<a>');
$excerpt_length = apply_filters('excerpt_length', 70);
$words = preg_split('/(<a.*?a>)|\n|\r|\t|\s/', $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE );
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('new_wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'new_wp_trim_excerpt');
答案 0 :(得分:0)
如果您在<a.*?a>
之后添加逗号,那么您的正则表达式似乎是一个问题吗?这是包含逗号的正则表达式行:
$words = preg_split('/(<a.*?a>,)|\n|\r|\t|\s/', $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE );