Pour afficher le contenu d'un article ou d'une page sous WordPress à partir de son identifiant en base de données, la fonction PHP get_the_content() ne fonctionnera pas. Il existe pour cela une fonction méconnue intitulée get_post_field() - à ne pas confondre avec get_field() de l'extension Advanced Custom Fields.

Imaginez que vous souhaitiez récupérer le contenu d’une page en particulier au sein de votre thème. Vous disposez de l’ID du contenu mais vous vous situez hors de la boucle. Voici la ligne de code à utiliser :

<?php echo get_post_field(‘post_content’, $post_id); ?>

La variable $post_id doit être préalablement spécifié dans votre code.

Disponible depuis la version 2.3 de WordPress, get_post_field() permet également de récupérer n’importe quel champ de la table wp_posts. Je vous renvoie au Codex pour de plus amples détails.

Avez-vous déjà utilisé une telle fonction au cours de vos développements ?

3 commentaires
    1. Aurélien Denis auteur de l’article

      Tout à fait, j’ai mal adapté mon exemple issu de mon code.

  1. Ce n’est pas tout à fait similaire à the_content() car le contenu n’a pas la possibilité d’être filtré par les plugins, pour obtenir le même comportement il faudrait faire apply_filters( ‘the_content’, get_post_field(‘post_content’, $post_id) );
    Si on a besoin d’autres éléments du post, on peut aussi faire un get_post et utiliser l’objet WP_Post retourné (get_post_field utilise d’ailleurs get_post)

Laisser un commentaire