Fonction d’extrait personnalisé
Vous trouverez ci-dessous une fonction personnalisée que nous avons développée pour vous aider à afficher des extraits de différentes longueurs dans WordPress. Pour utiliser la fonction, ajoutez-la simplement à votre fichier functions.php et vous pourrez ensuite remplacer les fonctions the_excerpt ou the_content dans tout votre thème afin que vous puissiez différentes longueurs d’extraits.
function wpex_get_excerpt( $args = array() ) {
// Defaults
$defaults = array(
'post' => '',
'length' => 40,
'readmore' => false,
'readmore_text' => esc_html__( 'read more', 'text-domain' ),
'readmore_after' => '',
'custom_excerpts' => true,
'disable_more' => false,
);
// Apply filters
$defaults = apply_filters( 'wpex_get_excerpt_defaults', $defaults );
// Parse args
$args = wp_parse_args( $args, $defaults );
// Apply filters to args
$args = apply_filters( 'wpex_get_excerpt_args', $defaults );
// Extract
extract( $args );
// Get global post data
if ( ! $post ) {
global $post;
}
// Get post ID
$post_id = $post->ID;
// Check for custom excerpt
if ( $custom_excerpts && has_excerpt( $post_id ) ) {
$output = $post->post_excerpt;
}
// No custom excerpt...so lets generate one
else {
// Readmore link
$readmore_link = '<a href="' . get_permalink( $post_id ) . '" class="readmore">' . $readmore_text . $readmore_after . '</a>';
// Check for more tag and return content if it exists
if ( ! $disable_more && strpos( $post->post_content, '<!--more-->' ) ) {
$output = apply_filters( 'the_content', get_the_content( $readmore_text . $readmore_after ) );
}
// No more tag defined so generate excerpt using wp_trim_words
else {
// Generate excerpt
$output = wp_trim_words( strip_shortcodes( $post->post_content ), $length );
// Add readmore to excerpt if enabled
if ( $readmore ) {
$output .= apply_filters( 'wpex_readmore_link', $readmore_link );
}
}
}
// Apply filters and echo
return apply_filters( 'wpex_get_excerpt', $output );
}
Comment utiliser la fonction
Alors maintenant, au lieu d’utiliser «the_excerpt ()» dans vos boucles, vous pouvez utiliser «wpex_excerpt ($ args)», où $ args contient un tableau de vos paramètres préférés pour l’extrait spécifique.
Exemple:
<?php echo wpex_get_excerpt ( $defaults = array(
'length' => 40,
'readmore' => true,
'readmore_text' => esc_html__( 'read more', 'wpex-boutique' ),
'custom_excerpts' => true,
) ); ?>
Filtres de fonction
Vous remarquerez peut-être que notre extrait de code comprend diverses fonctions apply_filters (). Pourquoi? La raison en est que si vous travaillez sur un thème ou un plugin premium ou gratuit pour la distribution, vous voudrez donner aux utilisateurs finaux la possibilité de modifier leurs extraits via leur thème enfant si nécessaire. Par exemple, si vous définissez un extrait comme ayant une certaine longueur pour une section du site, l’utilisateur final peut toujours utiliser le filtre «wpex_get_excerpt_args» pour changer l’extrait en une longueur différente ou personnaliser le texte ou lire plus