Ich werde eine WP_Query mit Argumenten basierend auf Benutzereingaben ausführen lassen. Der Benutzer kann mehrere Kategorien/Begriffe auswählen, und die Abfrage wird basierend auf dem UND-Booleschen Wert gefiltert.Bedingte Abfragen in einer Wordpress-Schleife
// main arguments
$args = array(
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'industry',
'terms' => $user_input,
),
array(
'taxonomy' => 'format',
'terms' => $user_input2,
),
),
);
// less specific arguments
$lessargs = array(
'tax_query' => array(
array(
'taxonomy' => 'industry',
'terms' => $user_input,
),
),
);
Wenn keine Ergebnisse in der ersten Abfrage zurückgegeben werden, möchte ich die zweite Abfrage mit weniger Spezifität ($ lessargs) laufen zu lassen. Ich weiß, dass ich if/else-Anweisungen verwenden muss, aber ich kenne nicht den richtigen Weg, dies innerhalb der Schleife zu tun. Beispiel:
<?php $the_query = new WP_Query($args); ?>
<?php if ($the_query->have_posts()) : ?>
<?php while ($the_query->have_posts()) : the_post(); ?>
// Return Query Results
<?php endwhile; ?>
<?php else : ?>
<?php $the_second_query = new WP_Query($less_args); ?>
<?php while ($the_second_query->have_posts()) : the_post(); ?>
// Return Second Query Results
<?php endwhile; ?>
<?php endif; ?>
Ist dies der richtige Weg, Abfragen bedingt zu rufen, wenn die vorherige Abfrage leer zurückkehrt?
Das sollte funktionieren, und ja - das 'if else' sollte tun, was Sie wollen, und es ist ein vernünftiger Weg, es zu tun. –