Holen Sie sich Post-Inhalt nach ID


10

Wie kann ich den Inhalt eines Beitrags anhand der Beitrags-ID abrufen? Ich habe versucht get_page('ID');, Inhalte anzuzeigen, aber es funktioniert nicht.


1
Downvotes, da Sie nicht einmal versucht haben, die Dokumente weiterzulesen get_page(). Es wurde vor sehr langer Zeit abgeschrieben. Es gibt auch eine unbegrenzte Anzahl von Ressourcen vor Ort zu diesem Thema, sogar Google hat jede Menge Informationen zu diesem Thema
Pieter Goosen

Antworten:


17

Sie können dies auf mehrere Arten tun. Im Folgenden finden Sie die besten zwei Möglichkeiten.

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

Eine andere Methode

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

Nach Pieter Goosen Vorschlag weiter apply_filters.

Sie können verwenden, apply_filterswenn der Inhalt von anderen Plugins gefiltert werden soll. Dies macht die Verwendung überflüssigdo_shortcode

Beispiel

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

Wenn Sie nicht möchten, dass andere Plugins diesen Inhalt filtern und eine Shortcode-Funktion benötigen, fahren Sie mit fort do_shortcode.

Wenn Sie auch keinen Shortcode möchten, spielen Sie einfach mit dem post_content.


Fragen Sie sich nur, warum Sie verwendendo_shortcode
Pieter Goosen

Hallo danke fürs fragen. @PieterGoosen Da wir die raw contentPost bekommen. In den Beitrag eingebettete Shortcodes werden nicht verarbeitet. Also machen wir das alleine mitdo_shortcode
WPTC-Troop

2
Ein besserer Weg wäre, auf apply_filters( 'the_content', $content );diese Weise alle Filter zu verwenden, die auf the_content()like wpautopund den Shortcode-Handler angewendet werden $content. ;-). Beachten Sie den Pluralfilters
Pieter Goosen

1
Ja, verwenden apply_filtersstatt do_shortcodesinnvoll. Die Verwendung apply_filterbasiert jedoch ausschließlich auf ihrer Umweltentscheidung. Lassen Sie mich auch meine Antwort aktualisieren. Vielen Dank für Ihre Fürsorge auf Community @PieterGoosen
WPTC-Troop

0

Ich lasse hier einfach einen anderen hässlichen Weg, den Sie manchmal nützlich finden. Natürlich werden immer Methoden bevorzugt, die API-Aufrufe verwenden (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
Bitte bearbeiten Sie Ihre Antwort und fügen Sie eine Erklärung hinzu: Warum könnte das das Problem lösen?
Fuxia

-1

Mit 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
Downvoted, da Sie wirklich nicht einmal versucht haben, die Dokumentation zu lesen. get_page()wird abgeschrieben
Pieter Goosen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.