it-swarm.com.de

Kann ich eine Schleife mit mehreren Beitragstypen erstellen und für jeden Beitragstyp unterschiedliche $ args angeben?

Ich möchte eine benutzerdefinierte Schleife erstellen, die alle Beitragstypen enthält: Beitrag und Video. Dann möchte ich festlegen, dass alle Beiträge des Beitragstyps Video angezeigt werden, aber nur Beiträge, die in der Kategorie "Videos" sind.

Hier ist was ich denke:

<?php
    $args=array(
        'post_type'=> array('video', 'post')
                 if( get_post_type() == 'post' ) {
                'category_name' => 'videos'
                 }      
    );
    $video_post_query = new WP_Query($args);    
?>

Ich weiß, dass es seltsam klingt, aber das ist ein Workaround, da die benutzerdefinierten Post-Typen neu sind und es einige Zeit dauern wird, bis ich alle alten Video-Posts aufnehmen und in den benutzerdefinierten Post-Typ einfügen kann. Selbst wenn ich dieses Problem nicht hätte, halte ich es dennoch für nützlich, zu wissen, wie man eine Schleife mit mehreren Beitragstypen definiert, die unterschiedliche Parameter für jeden Beitragstyp angibt.

1
matt

Kann ich eine Schleife mit mehreren Beitragstypen erstellen und für jeden Beitragstyp unterschiedliche $ args angeben?

Einfach gesagt, nein ... Sie können nicht eine einzige Abfrageinstanz mit drei unterschiedlichen Argumenten haben. Der Grund dafür ist ziemlich einfach: Die Abfrageklasse akzeptiert nur ein Array von Argumenten pro Instanz.

Wenn Sie unterschiedliche Ergebnismengen wünschen, benötigen Sie zusätzliche Abfragen. Und manchmal, nur manchmal ist es nicht unbedingt das effizienteste Mittel, um die Daten zu erfassen, wenn Sie alles in eine Abfrage einbinden.

Ich arbeite nicht auf stark frequentierten Websites, um wirklich eine Vorstellung davon zu bekommen, welche Abfragen die beste Leistung bringen. Ich wollte nur darauf hinweisen, dass eine Abfrage nicht unbedingt effizienter ist.

2
t31os