excerpt_length
Позволяет изменить максимальное количество слов в автоматически создаваемом отрывке записи. По умолчанию используется 55 слов.
Фильтр не ограничивает отрывок, который пользователь указал вручную.
Для изменения текста в конце сокращённого отрывка используйте фильтр excerpt_more.
Использование
add_filter( 'excerpt_length', 'wp_kama_excerpt_length_filter' );
/**
* Function for `excerpt_length` filter-hook.
*
* @param int $number The maximum number of words.
*
* @return int
*/
function wp_kama_excerpt_length_filter( $number ){
// filter...
return $number;
}
- $number(int)
- Максимальное количество слов. По умолчанию
55.
Примеры
#1 Ограничить отрывок до 20 слов
add_filter( 'excerpt_length', 'wp_kama_excerpt_length', 999 );
function wp_kama_excerpt_length( $number ) {
return 20;
}
Высокий приоритет нужен, если тема или плагин изменяет длину отрывка после этого фильтра.
#2 Изменить длину только на фронтенде
add_filter( 'excerpt_length', 'wp_kama_frontend_excerpt_length', 999 );
function wp_kama_frontend_excerpt_length( $number ) {
if ( is_admin() ) {
return $number;
}
return 30;
}
#3 Установить разную длину в зависимости от страницы
add_filter( 'excerpt_length', 'wp_kama_conditional_excerpt_length', 999 );
function wp_kama_conditional_excerpt_length( $number ) {
if ( is_page_template( 'page-templates/services.php' ) ) {
return 30;
}
if ( is_front_page() && is_home() ) {
return 80;
}
return $number;
}
#4 Получить длину из настройки темы
add_filter( 'excerpt_length', 'wp_kama_theme_excerpt_length', 999 );
function wp_kama_theme_excerpt_length( $number ) {
$custom_length = get_theme_mod( 'custom_excerpt_length' );
if ( ! $custom_length ) {
return $number;
}
return absint( $custom_length );
}Список изменений
| С версии 2.7.0 | Введена. |
Где вызывается хук
excerpt_length
wp-includes/formatting.php 4081
$excerpt_length = (int) apply_filters( 'excerpt_length', $excerpt_length );
wp-includes/blocks/latest-posts.php 167
$excerpt_length = (int) apply_filters( 'excerpt_length', $block_core_latest_posts_excerpt_length );
Где используется хук в WordPress
wp-includes/blocks/latest-posts.php 231
remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
wp-includes/blocks/latest-posts.php 59
add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
wp-includes/blocks/post-excerpt.php 116
add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );
wp-includes/blocks/post-excerpt.php 53
add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );
wp-includes/blocks/post-excerpt.php 57
remove_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );