当前浏览:首页 / WordPress钩子 / excerpt_length

apply_filters( 'excerpt_length', int $number )

过滤文章摘录中的最大字数

excerpt 摘要more...


参数

$number

(int) 最大字数,默认值55


说明

如果要更改默认摘录长度,请使用此过滤器。

要更改摘录长度,请在主题的functions.php文件中添加以下代码,调整“20”以匹配您希望在摘录中显示的字数:

function mytheme_custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'mytheme_custom_excerpt_length', 999 );

确保正确设置优先级,例如999,否则此函数上的默认WordPress过滤器将最后运行,并覆盖您在此处设置的内容。



源码

查看源码 官方文档


更新日志

版本描述
2.7.0开始引入

使用示例

  • 示例1

    通过定制器根据主题修改(theme mod)设置摘录长度。

    prefix_custom_excerpt_length( $length ) {
    	$custom = get_theme_mod( 'custom_excerpt_length' );
    	if( $custom != '' ) {
    		return $length = intval( $custom );
    	} else {
    		return $length;
    	}
    }
    add_filter( 'excerpt_length', 'prefix_custom_excerpt_length', 999 );
    
  • 示例2
    /**
     * Filter the excerpt length to 50 words.
     *
     * @param int $length Excerpt length.
     * @return int (Maybe) modified excerpt length.
     */
    function theme_slug_excerpt_length( $length ) {
            if ( is_admin() ) {
                    return $length;
            }
            return 50;
    }
    add_filter( 'excerpt_length', 'theme_slug_excerpt_length', 999 );

    这将有助于仅在前端应用摘录长度。

  • 示例3
    /**
     * Filter the excerpt length to 30 words.
     *
     * @param int $length Excerpt length.
     * @return int (Maybe) modified excerpt length.
     */
    function wp_example_excerpt_length( $length ) {
        return 30;
    }
    add_filter( 'excerpt_length', 'wp_example_excerpt_length');

    注意:这将使用excerpt_length过滤器显示最多30个单词的摘录文本。默认情况下,字数为55。

    示例:-

    <?php the_excerpt(); ?>

    这将显示您的文章摘录,最多30个单词。

  • 示例4
    /**
     * Filter the excerpt length to 20 words.
     *
     * @param int $length Excerpt length.
     * @return int (Maybe) modified excerpt length.
     */
    add_filter( 'excerpt_length', function( $length ) { return 20; } );
  • 示例5
    /**
     * Filter the excerpt length to 80 words on homepage and 50 words on page template
     *
     * @param int $length Excerpt length.
     * @return int modified excerpt length.
     */
    function wpdocs_custom_excerpt_length( $length ) {
        if ( is_page_template( 'page-templates/services-page.php' ) ) {
            return 50;
        } else if ( is_front_page() && is_home() ) {
            return 80;
        } else {
            return $length;
        }
    }
    
    add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 );
    

    这有助于在主页、自定义页面模板(其中列出了一些自定义文章类型)上显示不同的摘录长度。