Ограничение ленты WordPress только определенным количеством символов
У меня есть установка WordPress, в которой иногда используются длинные и длинные сообщения, разделенные тегом <!--more-->
. Однако в моих RSS-каналах отображается весь пост целиком.
Есть ли способ, помимо пользовательских тегов, определить, сколько отображается в ленте WordPress или просто показывать достаточно, пока не появится тег "Больше"?
2
Author: Paul Williams, 2013-05-19
1 answers
Вы можете выбрать между Full text
и Summary
в настройках Чтения :
Если вы выберете Summary
, то
A) Для управления количеством слов в сводке ленты вы можете использовать:
add_filter('excerpt_length','custom_excerpt_length');
function custom_excerpt_length( $num_words ){
return 30; // number of words to show
}
Количество слов в резюме по умолчанию равно 55
.
Б) Если вы хотите использовать <!--more-->
в содержимом публикации для определения сводки ленты, вы можете использовать следующее:
add_filter( 'the_content', 'custom_content_feed' );
function custom_content_feed( $content ){
if( is_feed() ){
// <!--more--> used in the post content:
if( strpos( $content, '<span id="more-') !== FALSE ){
// remove the excerpt length limit
add_filter( 'excerpt_length', 'custom_long_excerpt_length' );
// get the content before <!--more-->
$content = stristr( $content, '<span id="more-', TRUE );
// add the default 'read more' symbols at the end:
$excerpt_more = apply_filters( 'excerpt_more', ' ' . '[…]' );
$content .= $excerpt_more;
}
}
return $content;
}
function custom_long_excerpt_length( $num_words ){
return 99999;
}
В) Ты также можно использовать a) и b) вместе.
4
Author: birgire, 2013-05-19 07:50:58