Obter conteúdo da postagem do WordPress por ID da postagem

141

Como posso obter conteúdo de postagem do WordPress por ID de postagem?

m3tsys
fonte

Respostas:

177

Simples como fica

$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
fonte
85
$content = get_post_field('post_content', $my_postid);
Abreviação de
4
@Bainternet Estou curioso aqui ... qual é a parte que $content = str_replace(']]>', ']]>', $content);faz? qual é o propósito disso lá?
Joe Joe
11
@AverageJoe sua pesquisa básica e substitua. Ao usar the_content (), o conteúdo é filtrado. Como no exemplo acima, o conteúdo foi recuperado diretamente, o autor usou a pesquisa e a substituição para torná-lo seguro.
Harish Chouhan
2
talvez você também precisa do_shortcode () como$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus
Existe alguma maneira de preservar o "more_link"?
user2128576
126
echo get_post_field('post_content', $post_id);
realmag777
fonte
61
melhor fazê-lo como echo apply_filters('the_content', get_post_field('post_content', $post_id));. Por exemplo, ao usar qTranslate, sua solução não seria suficiente.
Karel Attl
4
Esta é a melhor resposta se o escopo é obter o conteúdo da postagem como está na página de edição do WordPress.
Mcont 8/08
Sem o código de @KarelAttl, as quebras de linha estão ausentes. Com o código apply_filters, funcionou perfeitamente.
Alexander Taubenkorb 23/09
11
apply_filtersé uma boa opção, mas não era adequada para o meu objetivo atual. É bom ter as duas opções.
precisa
25

Outra maneira de obter um conteúdo de postagem do WordPress por ID de postagem é:

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

Para completar esta resposta, também adicionei o método 01 e o método 02 a essa resposta.

Método 01 (o crédito vai para a bainternet ):

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

Método 02 (o crédito vai para realmag777 ):

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

Método 03:

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

Leia o Qual é a melhor / mais eficiente maneira de obter conteúdo WordPress por ID de postagem e por quê? pergunta para ter uma idéia sobre qual deles você deve usar dentre os três acima.

Ranuka
fonte
0

Se você precisar de mais de uma postagem, use get_posts(). Ele deixa a consulta principal em paz e retorna uma matriz de postagens fáceis de percorrer.

DigitalDesignDj
fonte