Obtenir post_content avec les balises p?

12

J'essaie de récupérer le contenu d'un message spécifique

$post = get_post(/* id */);
$content = $post->post_content;

Cependant, cela récupère le contenu sans sauts de ligne. J'ai remarqué que c'est parce qu'il omet tout

balises.

Comment puis-je récupérer le contenu avec le

balises, comme je le vois sur la page de publication et également sur l'onglet de texte de l'éditeur de publication?

    
posée Lisandro Vaccaro 16.10.2014 - 14:17

3 réponses

22

Jusqu'à présent, les deux réponses sont correctes, mais une réponse plus approfondie semble justifiée.

Si vous utilisez ceci:

$content = wpautop( $post->post_content );

vous appliquez la fonction qui ajoute des balises de paragraphe pour publier du contenu. wpautop() est l’une des nombreuses fonctions (y compris parfois des fonctions de plug-in) qui s’accroche à the_content . Par conséquent, si vous procédez ainsi:

$content = apply_filters('the_content', $post->post_content);

vous faites exécuter le contenu de la publication à travers les filtres de the_content incluant wpautop() par défaut.

Enfin, si vous êtes au courant, vous pouvez simplement faire ceci:

$content = apply_filters( 'the_content', get_the_content() );

qui est essentiellement un wrapper pour le second extrait de code, mais bien sûr, il est un peu plus joli. Mise à jour 1 sept. 2018: révisée sur la base de commentaire . Les accessoires @ Timmb.

En général, je dirais que la "bonne façon" de procéder est la dernière à la première puisque l'utilisation d'une fonction WP centrale devrait permettre davantage de compatibilité avec les versions antérieures (du moins théoriquement). La seule autre décision à prendre est alors de décider si vous souhaitez autoriser WordPress et les plugins à modifier également le contenu de la publication. Si tel est le cas, utilisez certainement les 2ème ou 3ème options.

    
réponse donnée mrwweb 16.10.2014 - 17:11
4

Vous avez trouvé la solution:

$content = apply_filters('the_content', $post->post_content);
    
réponse donnée Lisandro Vaccaro 16.10.2014 - 14:21
1

La deuxième méthode pour obtenir du contenu de publication avec la balise p est

echo wpautop( $post->post_content );
    
réponse donnée DINESH BHIMANI 16.10.2014 - 16:04

Lire d'autres questions sur les étiquettes