Obter conteúdo da postagem por ID

10

Como posso obter o conteúdo de uma postagem pelo ID da postagem? Tentei get_page('ID');mostrar o conteúdo, mas ele não funciona.

m viral
fonte
11
Downvotes como você nem sequer tentar ler os docs on get_page(). Foi preterido há muito tempo. Além disso, há uma quantidade ilimitada de recursos no local sobre este assunto, até mesmo o Google tem toneladas de informação sobre este
Pieter Goosen

Respostas:

17

Você pode fazer isso de várias maneiras. A seguir, são duas melhores maneiras.

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes

Outro método

$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes

Após a sugestão de Pieter Goosen em apply_filters.

Você pode usar apply_filtersse quiser que o conteúdo seja filtrado por outros plugins. Portanto, isso elimina a necessidade de usardo_shortcode

Exemplo

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo apply_filters('the_content',$content);
 //no need to use do_shortcode, but content might be filtered by other plugins.

Se você não quiser permitir que outros plugins filtrem esse conteúdo e precise da função de código de acesso, siga em frente do_shortcode.

Se você também não deseja código curto, apenas brinque com o post_content.

WPTC-Troop
fonte
Maravilha apenas porque você está usandodo_shortcode
Pieter Goosen
Oi obrigado por perguntar. @PieterGoosen Como estamos recebendo o raw contentpost. Qualquer código abreviado incorporado à postagem não será processado. assim que nós estamos fazendo isso por nós mesmos comdo_shortcode
WPTC-Troop
2
Uma maneira melhor seria usar apply_filters( 'the_content', $content );, dessa maneira, todos os filtros aplicados ao the_content()like wpautope o manipulador de códigos curtos $content. ;-). Observe o pluralfilters
Pieter Goosen
11
Sim, usar em apply_filtersvez de do_shortcodefazer sentido. Mas o uso apply_filteré puramente baseado em sua decisão ambiental. Deixe-me atualizar minha resposta também. Muito obrigado pelo seu carinho na comunidade @PieterGoosen
WPTC-Troop
0

Vou deixar aqui outra maneira feia e hacky que você pode achar útil às vezes. Obviamente, os métodos que usam chamadas de API são sempre preferidos (get_post (), get_the_content (), ...).

global $wpdb;
$post_id = 123; // fill in your desired post ID
$post_content_raw = $wpdb->get_var(
    $wpdb->prepare(
        "select post_content from $wpdb->posts where ID = %d",
        $post_id
    )
);
DrLightman
fonte
0
$id = 23; // add the ID of the page where the zero is
$p = get_page($id);
$t = $p->post_title;
echo '<h3>'.apply_filters('post_title', $t).'</h3>'; // the title is here wrapped with h3
echo apply_filters('the_content', $p->post_content);
Dharmishtha Patel
fonte
11
Por favor edite sua resposta , e adicionar uma explicação: por que isso poderia resolver o problema?
fuxia
-1

Usando get_page('ID').

$page_id = 123;  //Page ID
$page_data = get_page($page_id); 
$title = $page_data->post_title; 
$content = $page_data->post_content;
etest
fonte
11
Voto negativo como você realmente nem tentou ler a documentação. get_page()é depreciado
Pieter Goosen