Obtenir le contenu d'un article WordPress par identifiant

141

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

m3tsys
la source

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;
Bainternet
la source
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);
realmag777
la source
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.

Ranuka
la source
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.

DigitalDesignDj
la source