Uzyskaj treść postu WordPress według identyfikatora postu


141

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

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;

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);

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.


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ć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.