J'utilise le thème Feuille
et je n'arrive pas à formater les extraits de la page d'accueil.
J'ai essayé des plugins et bidouiller avec le fichier theme-functions.php mais en vain.
Je n'ai pas besoin de beaucoup d'éléments sophistiqués dans les extraits, juste un peu de formatage, rien de plus.
Cela devrait être possible, non?
L'extrait est créé dans -> wp-includes/formating.php avec ce code:
function wp_trim_excerpt($text) { // Fakes an excerpt if needed
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace('\]\]\>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words)> $excerpt_length) {
array_pop($words);
array_Push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}
Pour modifier le comportement WP présente normalement des extraits, supprimez d'abord cette fonction (pas du code principal, mais utilisez remove_filter () en le plaçant dans votre functions.php:
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
Ensuite, vous devrez créer une nouvelle fonction pour contrôler les extraits afin de pouvoir copier la fonction ci-dessus à partir de WP core comme point de départ. Nommez-le quelque chose de différent. Ensuite, changez ce dont vous avez besoin. Par exemple, si vous souhaitez autoriser la balise dans vos extraits, vous pouvez modifier cette ligne:
$text = strip_tags($text);
pour ça:
$text = strip_tags($text, '<b>');
Si vous avez besoin de plusieurs balises HTML autorisées, listez-les après. Donc, votre nouvelle fonction dans votre functions.php pourrait ressembler à:
function nb_html_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace('\]\]\>', ']]>', $text);
$text = strip_tags($text, '<b>');
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words)> $excerpt_length) {
array_pop($words);
array_Push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}
Et enfin, vous devez dire à WP de filtrer votre extrait à travers votre nouvelle fonction. Ajoutez le filtre comme ceci dans functions.php:
add_filter('get_the_excerpt', 'nb_html_excerpt');