Ограничение ленты WordPress только определенным количеством символов


У меня есть установка WordPress, в которой иногда используются длинные и длинные сообщения, разделенные тегом <!--more-->. Однако в моих RSS-каналах отображается весь пост целиком.

Есть ли способ, помимо пользовательских тегов, определить, сколько отображается в ленте WordPress или просто показывать достаточно, пока не появится тег "Больше"?

 2
Author: Paul Williams, 2013-05-19

1 answers

Вы можете выбрать между Full text и Summary в настройках Чтения :

settings menu

settings

Если вы выберете 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', ' ' . '[&hellip;]' );
            $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