Ottieni contenuti di post per ID


10

Come posso ottenere i contenuti di un post per ID post? Ho provato get_page('ID');a mostrare il contenuto ma non funziona.


1
Downvotes dato che non hai nemmeno provato a leggere i documenti get_page(). È stato ammortizzato molto tempo fa. Inoltre, sul sito è disponibile una quantità illimitata di risorse in merito a questo problema, anche Google ha tonnellate di informazioni al riguardo
Pieter Goosen

Risposte:


17

Puoi farlo in diversi modi. Di seguito sono riportati i due modi migliori.

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

Un altro metodo

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

Dopo il suggerimento di Pieter Goosen su apply_filters.

Puoi usarlo apply_filtersse desideri che il contenuto venga filtrato da altri plugin. Quindi questo elimina la necessità di usaredo_shortcode

Esempio

$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 non vuoi consentire ad altri plugin di filtrare questo contenuto e hai bisogno della funzione shortcode, vai avanti do_shortcode.

Se non vuoi anche lo shortcode, gioca con il post_content.


Mi chiedo solo perché stai usandodo_shortcode
Pieter Goosen il

Ciao grazie per avermelo chiesto. @PieterGoosen Come stiamo ottenendo il raw contentpost. Qualsiasi shortcode incorporato nel post non verrà elaborato. quindi lo stiamo facendo da do_shortcode
soli

2
Un modo migliore sarebbe usare apply_filters( 'the_content', $content );, in questo modo, tutti i filtri applicati a the_content()like wpautope il gestore di shortcode, a cui viene applicato $content. ;-). Nota il pluralefilters
Pieter Goosen

1
Sì, usando apply_filtersinvece di do_shortcodeavere un senso. Ma l'utilizzo apply_filtersi basa esclusivamente sulla decisione ambientale. Vorrei aggiornare anche la mia risposta. Grazie mille per la tua attenzione nella community @PieterGoosen
WPTC-Troop

0

Lascerò qui un altro brutto modo bizzarro che potresti trovare utile a volte. Ovviamente i metodi che utilizzano le chiamate API sono sempre preferiti (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
    )
);

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

1
Si prega di modificare la risposta , e aggiungere una spiegazione: perché potrebbe che risolvere il 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;

1
Sottovalutato in quanto non hai nemmeno provato a leggere la documentazione. get_page()è ammortizzato
Pieter Goosen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.