it-swarm.com.de

Holen Sie sich Inhalte von außerhalb der Schleife

Gibt es eine Möglichkeit, den Inhalt von einem anderen außerhalb der Schleife abzurufen? Die ID lautet 302 und ich muss den Inhalt auf einer anderen Seite anzeigen.

21
Rob

Sie können get_page() verwenden, um das $post-Objekt einer statischen Seite zurückzugeben:

$page_id = 302;
$page_object = get_page( $page_id );
echo $page_object->post_content;

Bearbeiten

Ebenso können Sie get_post() verwenden, um das $post-Objekt eines Posts zurückzugeben:

$post_id = 302;
$post_object = get_post( $post_id );
echo $post_object->post_content;
38
Chris_O

um den Inhalt des Posts außerhalb der Schleife zu erhalten, können Sie so etwas schreiben

global $post;
$content = $post->post_content;

if ( !empty( $content ) ) :
    echo $content;
endif;
6
Aamer Shahzad

Wenn Ihre Inhalte Shortcodes enthalten, sollten Sie Folgendes verwenden:

$post_id = 22;        
$post_object = get_post( $post_id );        
echo do_shortcode( $post_object->post_content );
3
DSI_ClasH

Um der Vollständigkeit willen, bauen Sie auf Tims obigen Kommentar auf und lassen Sie sich von Stephen Harris 'Artikel inspirieren. Die Lösung, die die Verwendung von the_content() ermöglicht, lautet:

$post_id = 302;
global $post;
$post = get_post($post_id);
setup_postdata( $post );
the_content();
wp_reset_postdata( $post );

Dadurch werden Filter angewendet (Absätze werden eingefügt usw.) und Shortcodes funktionieren.

1
Jon

Da Sie Ihre Ziel-Beitrags-ID (302) kennen, ist diese Syntax möglicherweise hilfreich, die Sie auch außerhalb der Schleife verwenden können (obwohl die Leistung fast dieselbe ist wie bei jeder anderen alternativen Methode :)

echo(get_post_field('post_content',302));
0
E. Serrano

Sie können wie gesagt die Lösung mit get_post und $post_object->post_content verwenden, aber vergessen Sie nicht, ein Häkchen hinzuzufügen, bevor Sie dieses Beitragsobjekt verwenden:

function get_post_content( $post_id = null ) {
    $post_object = get_post( $post_id );
    if ( ! $post_object ) { return ''; }
    //else

    return apply_filters('the_content', $post_object->post_content);
}

echo get_post_content( $other_post_id );
0
Olga Farber

Sie können die Funktion get_post_data() verwenden, um Beiträge außerhalb der Schleife zu veröffentlichen. Platziere diesen Code in functions.php

function get_post_data($postId) {
    global $wpdb;
    return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId");
}

fügen Sie dann dieses Snippet hinzu, um mehr Kontrolle über den Prozess zu erhalten

<?php $data = get_post_data(302);
    echo $data->post_date;     // post date
    echo $data->post_title;    // post title
    echo $data->post_content;  // post content
    echo $data->comment_count; // comments number
?>
0
Zohair Baloch