web-dev-qa-db-fra.com

Le lien "Lire la suite" ne s'affiche pas lorsque la longueur du message est inférieure à la longueur de l'extrait.

J'ai des publications avec des longueurs de publication très différentes.

Parfois, il y a de très longs articles, parfois un très court commentaire sur un livre.

J'ai réglé la longueur de mon extrait sur 50 mots, mais lorsqu'un message compte 25 mots, le lien "Lire la suite" ne s'affiche pas.

Des idées?

1
Jose M.

La raison en est le contrôle suivant dans la fonction wp_trim_words():

if ( count( $words_array ) > $num_words ) {
    array_pop( $words_array );
    $text = implode( $sep, $words_array );
    $text = $text . $more;
} else {
    $text = implode( $sep, $words_array );
}

Vous pouvez donc essayer ce qui suit:

add_filter( 'wp_trim_words', function( $text, $num_words, $more ) {
    return $more === mb_substr( $text, -1 * mb_strlen( $more ) ) ? $text : $text . $more;
}, 11, 3 );

pour ajouter le lien $more au $text, s'il est manquant.

Mais je pense que vos lecteurs pourraient être déçus quand ils cliquent sur le lien dans les posts courts et découvrent qu'il n'y a rien de nouveau à lire ;-)

1
birgire

J'utilise le plugin Post Teaser sur mon site. Il suffit d’installer et de définir le nombre de mots que vous souhaitez afficher sur la page; un lien en dessous ouvre le post complet.

0
Jawad Satti