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.