Wordpress摘录功能,输出不良

时间:2015-08-28 16:00:26

标签: php wordpress

我的第一个问题:

我正在使用此代码在我的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');

1 个答案:

答案 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 );