根据正在加载的页面动态设置过滤器。如果类别存档页面有100字的摘录,但帖子有10字的摘录,而其他所有内容都使用默认值:
function my_custom_excerpt_length( $orig ) {
if( is_category() ) {
return 100;
} elseif( is_single() ) {
return 10;
}
return $orig;
}
add_filter( \'excerpt_length\', \'my_custom_excerpt_length\' );
您可以获得更具体的内容,为特定类别赋予不同的长度。
响应Rarst,一个新的模板函数the_excerpt_length()
用于输出特定字数的摘录:
// Excerpt with a specific number of words, i.e. the_excerpt( 100 );
function the_excerpt_length( $words = null ) {
global $_the_excerpt_length_filter;
if( isset($words) ) {
$_the_excerpt_length_filter = $words;
}
add_filter( \'excerpt_length\', \'_the_excerpt_length_filter\' );
the_excerpt();
remove_filter( \'excerpt_length\', \'_the_excerpt_length_filter\' );
// reset the global
$_the_excerpt_length_filter = null;
}
function _the_excerpt_length_filter( $default ) {
global $_the_excerpt_length_filter;
if( isset($_the_excerpt_length_filter) ) {
return $_the_excerpt_length_filter;
}
return $default;
}
这将在模板文件中使用,即:
<div class="entry">
<?php the_excerpt_length( 25 ); ?>
</div>