it-swarm.com.de

Benutzerdefinierter Beitragstyp innerhalb der Schleife auf der Homepage (Seitenvorlage)

Ich versuche mit dem Loop und CPT etwas zu erreichen. Ich habe eine Vorlagenseite erstellt, auf der Artikel und Videos auf der Startseite meiner Website angezeigt werden (CPT). Wie kann ich den CPT in eine Schleife einfügen, damit beide in der Reihenfolge eines Feeds angezeigt werden?

Ich habe das folgende Snippet zu functions.php hinzugefügt:

// Custom loop feed
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );

function add_my_post_types_to_query( $query ) {
    if ( is_home() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'videos' ) );
    return $query;
}

Und dann stecke den Code für die Schleife in meinen homepage.php.

Es wird zwar auf meiner Blog-Seite angezeigt, aber auf meiner Homepage wurde ein Beitrag für die Homepage erstellt.

 enter image description here 

Gibt es etwas, was ich falsch gemacht habe?

1
Laurent

Es gibt einige Möglichkeiten, um das zu erreichen, was Sie versuchen. Das erste und einfachste, von dem ich denke, dass ich es versuchen würde, ist, Ihren Anruf bei is_home() durch is_ftont_page() zu ersetzen. Lesen Sie hier für den Unterschied zwischen den beiden.

Wenn dies Ihr Problem nicht behebt, können Sie versuchen, in Ihrem Vorlagencode WP_query aufzurufen. Es könnte ungefähr so ​​aussehen:

$query = new WP_query(
    array(
        'post_type' => array('post', 'videos'),
        'post_status' => 'publish',
        'order' => 'ASC'
    )
);
foreach ($query->posts as $post) {
    // Your display code here.
}

Es gibt viele Parameter, die Sie ändern können, damit die Abfrage genau so funktioniert, wie Sie es möchten. Es ist alles in der Dokumentation. Wenn Sie diese Route wählen, möchten Sie den Haken "pre_get_posts" entfernen.

Hoffe das hilft!

0
Mike D