Intercaler du contenu entre l'extrait défini par la balise "Lire la suite..." et le reste de l'article - afin d'insérer par exemple un encart publicitaire, n'est pas une mince affaire. Il existe néanmoins une fonction méconnue intitulée get_extended qui permet de récupérer soit l'extrait défini par l'utilisateur, soit le reste du contenu.

Vous recherchez un développeur WordPress capable de vous créer un thème sur-mesure ? C'est mon métier depuis plus de 8 ans, prenez contact et discutons de votre projet.

Dans un thème WordPress, nous utilisons la fonction the_content(); qui récupère le contenu saisi dans l’éditeur. Aussi, il est classique de rédiger une introduction puis de marquer une délimitation afin de générer manuellement un extrait. Le problème est que cette fonction the_content(); ne permet pas de se placer entre ce fameux extrait et le reste du contenu.

C’est là que j’ai découvert la fonction get_extended en parcourant complètement par hasard le Codex WordPress, la documentation officielle. Elle retourne un tableau avec main pour l’extrait et extended pour la suite du contenu.

Il suffit donc d’ajouter du code personnel entre les deux comme le montre ces quelques lignes ci-dessous :

$content = get_extended( $post->post_content );
$excerpt = $content['main'];
$main_content = apply_filters('the_content', $content['extended']);

echo '<p>'.$excerpt.'</p>';

// Votre code ici

echo $main_content;

J’ai utilisé cette technique afin d’insérer un encart publicitaire sur ce site à titre d’exemple.

Chers lecteurs, aviez-vous connaissance d’une telle fonction PHP ? En connaissez-vous d’autres ?

5 commentaires
  1. Julio Potier

    Hello,
    Tu en fais une très bonne utilisation, elle te permet d’insérer du contenu DANS un article sans avoir à l’insérer dans chaque post, ni d’y ajouter un shortcode. Nice !

  2. Julien Appert

    Belle découverte ! Dire que je m’étais développé une fonction qui réalise exactement la même chose. Comme quoi on n’a jamais fait complètement le tour du Codex.

  3. STEVEN DIAI

    Excellent, merci pour le partage ! Je ne pensais pas que wordpress pouvait gérer ça nativement. Surpris et heureux de voir que oui

Laisser un commentaire