Obtenir le contenu d'un article WordPress par identifiant


141

Comment puis-je obtenir le contenu d'un message WordPress par identifiant?

Réponses:


177

Simple comme ça devient

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;

85
Raccourci pour un domaine spécifique:$content = get_post_field('post_content', $my_postid);
Rarst

4
@Bainternet je suis juste curieux ici ... quelle est la partie $content = str_replace(']]>', ']]>', $content);faire? quel est le but de cela là-bas?
Moyenne Joe

1
@AverageJoe sa recherche de base et de remplacer. Lors de l'utilisation de the_content (), le contenu est filtré. Étant donné que, dans l'exemple ci-dessus, le contenu a été directement récupéré, l'auteur a utilisé la recherche et le remplacement pour le rendre sûr.
Harish Chouhan

2
peut-être avez-vous aussi besoin de do_shortcode () comme$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus

Est-il possible de conserver le "plus_lien"?
user2128576

126
echo get_post_field('post_content', $post_id);

61
mieux faire comme echo apply_filters('the_content', get_post_field('post_content', $post_id));. Par exemple, lorsque vous utilisez qTranslate, votre solution ne suffira pas.
Karel Attl

4
C’est la meilleure solution si le but est d’obtenir le contenu du message tel qu’il se trouve dans la page de modification de WordPress.
mcont

Sans le code de @KarelAttl, les sauts de ligne sont manquants. Avec le code apply_filters, cela fonctionnait parfaitement.
Alexander Taubenkorb

1
apply_filtersest une bonne option, mais ne convenait pas à mon objectif actuel. C'est bien d'avoir les deux options.
KnightHawk

25

Une autre façon d’obtenir un contenu post WordPress par post id est:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Pour compléter cette réponse, j’ai également ajouté les méthodes 01 et 02 à cette réponse.

Méthode 01 (le crédit va à bainternet ):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

Méthode 02 (le crédit revient à realmag777 ):

$content = get_post_field('post_content', $my_postid);

Méthode 03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Lisez le Quel est le moyen le plus efficace d’obtenir du contenu WordPress par identifiant postal et pourquoi? question pour avoir une idée de celle que vous devriez utiliser parmi les trois précédentes.


0

Si vous avez besoin de plus d’un poste, utilisez get_posts(). Il laisse la requête principale seule et renvoie un tableau de publications facile à lire en boucle.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.