Uzyskaj treść postu WordPress według identyfikatora postu

141

Jak mogę uzyskać treść postu WordPress według identyfikatora postu?

m3tsys
źródło

Odpowiedzi:

177

Proste, jak to możliwe

$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
źródło
85
Stenografia dla określonej dziedziny:$content = get_post_field('post_content', $my_postid);
Rarst
4
@Bainternet Jestem tutaj ciekawy ... co to za część $content = str_replace(']]>', ']]>', $content);? jaki jest jej cel?
Średnia Joe
1
@ŚredniaJoe podstawowe wyszukiwanie i zamiana. Podczas korzystania z funkcji the_content () zawartość jest filtrowana. Ponieważ w powyższym przykładzie treść została pobrana bezpośrednio, autor użył wyszukiwania i zastąpienia, aby zapewnić bezpieczeństwo.
Harish Chouhan,
2
może potrzebujesz też do_shortcode () jak$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus
Czy istnieje sposób na zachowanie „more_link”?
user2128576,
126
echo get_post_field('post_content', $post_id);
realmag777
źródło
61
lepiej to zrobić echo apply_filters('the_content', get_post_field('post_content', $post_id));. Na przykład, gdy używasz qTranslate, twoje rozwiązanie nie wystarczy.
Karel Attl
4
To najlepsza odpowiedź, jeśli celem jest uzyskanie zawartości posta tak, jak jest na stronie edycji WordPress.
mcont
Bez kodu z @KarelAttl podział wierszy, gdy go brakuje. Z kodem Apply_filters działało idealnie.
Alexander Taubenkorb,
1
apply_filtersto dobra opcja, ale nie była odpowiednia do mojego obecnego celu. Dobrze jest mieć obie opcje.
KnightHawk
25

Innym sposobem na uzyskanie zawartości postu WordPress według identyfikatora postu jest:

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

Aby uzupełnić tę odpowiedź, do tej odpowiedzi dodałem również metodę 01 i metodę 02.

Metoda 01 (kredyt trafia na bainternet ):

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

Metoda 02 (kredyt trafia do realmag777 ):

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

Metoda 03:

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

Przeczytaj Jaki jest najlepszy / skuteczny sposób na uzyskanie zawartości WordPress pocztą i dlaczego? pytanie, aby dowiedzieć się, którego należy użyć z powyższych trzech.

Ranuka
źródło
0

Jeśli potrzebujesz więcej niż jednego posta, użyj get_posts(). Pozostawia główne zapytanie w spokoju i zwraca tablicę postów, które można łatwo zapętlić.

DigitalDesignDj
źródło