web-dev-qa-db-fra.com

Limiter le flux WordPress à une certaine limite de caractères

J'ai une installation WordPress qui utilise parfois des publications longues et longues délimitées par la balise <!--more-->. Cependant, sur mes flux RSS, l'intégralité du message est affiché.

Existe-t-il un moyen, en dehors des balises personnalisées, de délimiter ce qui est affiché dans un flux WordPress ou d'afficher suffisamment jusqu'à la balise "Plus"?

2
Paul Williams

Vous pouvez choisir entre Full text et Summary dans les paramètresReading:

settings menu

settings

Si vous sélectionnez Summary, alors

a) Pour contrôler le nombre de mots dans le résumé du flux, vous pouvez utiliser:

add_filter('excerpt_length','custom_excerpt_length'); 
function custom_excerpt_length( $num_words ){
    return 30; // number of words to show
}

Le nombre de mots par défaut dans le résumé est 55.

b) Si vous souhaitez utiliser <!--more--> dans le contenu de l'article pour définir le récapitulatif du flux, vous pouvez utiliser les éléments suivants:

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;
}

c) Vous pouvez également utiliser a) et b) ensemble.

3
birgire