Ich erstelle einen Abschnitt auf einer Site, in der ich zwei verschiedene Beitragstypen in einer Schleife zusammenführe und sie dann zufällig anzeige. Das Problem ist, dass es mir schwer fällt, die Anzahl der Beiträge pro Typ zu begrenzen .
Folgendes habe ich versucht:
Eine Abfrage mit mehreren Beitragstypen kann mit einem Array durchgeführt werden:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
... kann aber nicht auf eine bestimmte Anzahl von Posts pro Typ beschränkt werden.
Zusammenführen von zwei Arrays mit Abfrageargumenten, bevor WP_Query darauf ausgeführt wird:
$photos = array( 'post_type' => 'photos', 'posts_per_page' => 15, 'orderby' => 'rand' ); $quotes = array( 'post_type' => 'quotes', 'posts_per_page' => 5, 'orderby' => 'rand' ); $args = $photos + $quotes; // Also tried array_merge( $photos, $quotes );
Kein Glück. Was passiert, ist, dass die letztere Variable
$quotes
überschreibt$photos
und nur die Anführungszeichen anzeigt.Zusammenführen von zwei WP_Query- Objekten durch Typumwandlung:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... und so weiter.
Ich könnte wahrscheinlich eine SQL-Abfrage direkt in der Datenbank verwenden, aber ich muss in der Lage sein, diese beiden separaten Beitragstypen für eine Schleife zu kombinieren, die zufällig angeordnet und auf eine bestimmte Anzahl von Beiträgen pro Typ beschränkt ist.
Danke für Ihre Hilfe!
quelle
UNION
Erfordert dies für jeden post_type eine Art in der SQL?@mridual aggarwal Ihre Antwort ist sehr sehr gut, aber leider kombiniert es die 2 nicht wirklich
wp_query
sondern zeigt nur die Beiträge von beiden in Anordnung. Ich meine 5 Beiträge vom ersten und 5 vom zweiten, aber nicht alle in einem sortiert, also habe ich dies Lösung & es hat zumindest genau das Ziel für mich selbst erreichtquelle