mon objectif est de définir une longueur d’extrait sur mesure. Je sais que je peux le faire en définissant une nouvelle fonction dans mon functions.php situé dans le thème enfant du Twenty Eleven.
Il convient de remplacer ces lignes:
/**
* Sets the post excerpt length to 40 words.
*
* To override this length in a child theme, remove the filter and add your own
* function tied to the excerpt_length filter hook.
*/
function twentyeleven_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'twentyeleven_excerpt_length' );
Par :
function new_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');
Mais ça ne fait rien. Même si je change la valeur par défaut 40 par un autre.
Une idée?
Eh bien, j'ai finalement résolu le problème. La fonction excerpt_length n'est PAS utilisée avec la boîte à extraits de l'éditeur WordPress. Vous devez mettre tout votre contenu dans la zone principale.
N'oubliez pas également de supprimer le filtre vingt-onze:
remove_filter( 'excerpt_length', 'twentyeleven_excerpt_length' );
add_filter('excerpt_length', 'new_excerpt_length');
function new_excerpt_length($length) {
return 20;
}
Cela vous permet de définir la longueur de chaque balise individuellement.
// nouveller.com/quick-tips/quick-tip-8-limit-the-length-of-the_excerpt-in-wordpress/
function custom_excerpt_length($string, $Word_limit) {
// creates an array of words from $string (this will be our excerpt)
// explode divides the excerpt up by using a space character
$words = explode(' ', $string);
// this next bit chops the $words array and sticks it back together
// starting at the first Word '0' and ending at the $Word_limit
// the $Word_limit which is passed in the function will be the number
// of words we want to use
// implode glues the chopped up array back together using a space character
return implode(' ', array_slice($words, 0, $Word_limit));
}
function custom_excerpt_more($more) {
global $post;
return get_permalink($post->ID);
}
add_filter('excerpt_more', 'custom_excerpt_more');
// Call Function Like This:
// echo custom_excerpt_length(get_the_excerpt(), '25');