0

在处理博客文章预览列表时,我遇到了这个问题。他们需要缩短内容,但不要通过保持打开状态来破坏任何 html 标签。

我听说 reg ex 不是一个好的选择。我正在寻找一些简单且有效的东西。

我一如既往地提前感谢您的帮助(所以最终成为解决此类问题的好地方:-)

4

1 回答 1

1

Wordpress 具有生成内置到博客平台的摘录的功能,该平台从实际的博客文章中生成摘录。

您没有指定要用于修剪功能的语言,所以这里是 Wordpress 版本。如果需要,它可以很容易地修改和重新用于在 Wordpress 之外使用。

wp_trim_words() 函数参考

/**
 * Generates an excerpt from the content, if needed.
 *
 * The excerpt word amount will be 55 words and if the amount is greater than
 * that, then the string ' […]' will be appended to the excerpt. If the string
 * is less than 55 words, then the content will be returned as is.
 *
 * The 55 word limit can be modified by plugins/themes using the excerpt_length filter
 * The ' […]' string can be modified by plugins/themes using the excerpt_more filter
 *
 * @since 1.5.0
 *
 * @param string $text Optional. The excerpt. If set to empty, an excerpt is generated.
 * @return string The excerpt.
 */
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);
        $excerpt_length = apply_filters('excerpt_length', 55);
        $excerpt_more = apply_filters('excerpt_more', ' ' . '[…]');
        $text = wp_trim_words( $text, $excerpt_length, $excerpt_more );
    }
    return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
于 2013-10-19T12:45:18.330 回答