// ===== SHORTCODE [dernier_article] (paramétrable) ===== // Affiche N derniers articles (défaut : 1) avec extrait + bouton "Lire l'article complet" if ( ! function_exists( 'bfrr_dernier_article_shortcode' ) ) { function bfrr_dernier_article_shortcode( $atts = array() ) { // Attributs : nb = nombre d'articles à afficher (défaut = 1) $atts = shortcode_atts( [ 'nb' => 1, ], $atts, 'dernier_article' ); $nb = max( 1, intval( $atts['nb'] ) ); $args = [ 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => $nb, ]; $query = new WP_Query( $args ); if ( ! $query->have_posts() ) { return '

Aucun article trouvé.

'; } ob_start(); while ( $query->have_posts() ) { $query->the_post(); $post_id = get_the_ID(); $permalink = get_permalink(); echo '
'; // Titre cliquable echo '

' . esc_html( get_the_title() ) . '

'; // Date echo '

Publié le ' . esc_html( get_the_date() ) . '

'; // Catégories $cats_list = get_the_category_list( ', ' ); if ( $cats_list ) { echo '

Catégories : ' . wp_kses_post( $cats_list ) . '

'; } // Sources (taxonomie personnalisée) $sources = get_the_terms( $post_id, 'sources' ); if ( $sources && ! is_wp_error( $sources ) ) { $sources_names = wp_list_pluck( $sources, 'name' ); echo '

Sources : ' . esc_html( implode( ', ', $sources_names ) ) . '

'; } // Étiquettes $tags_list = get_the_tag_list( '', ', ' ); if ( $tags_list ) { echo '

Étiquettes : ' . wp_kses_post( $tags_list ) . '

'; } // 🔹 EXTRAI T echo '
'; echo wp_kses_post( wp_trim_words( get_the_excerpt(), 55, '...' ) ); echo '
'; // 🔹 Bouton "Lire l'article complet" echo '

'; echo 'Lire l’article complet'; echo '

'; echo '
'; } wp_reset_postdata(); return ob_get_clean(); } } add_shortcode( 'dernier_article', 'bfrr_dernier_article_shortcode' );