Hallo zusammen,
ich würde meinen Besuchern gerne die Möglichkeit geben Beiträge anzuzeigen, die sich an eine bestimmte Zielgruppe richten (Taxonomy) und eine bestimmte Eigenschaft haben (Meta Key). Dafür habe ich folgendes Suchformular erstellt:
PHP
<fieldset id="search_form">
<legend>Suchformular</legend>
<form action="" method="post">
<?php if(isset($_POST['submit'])) { $eigenschaft = $_POST['eigenschaft']; } else { $eigenschaft = array('eigenschaft1', 'eigenschaft2', 'eigenschaft3'); } ?>
<?php if(isset($_POST['submit'])) { $zielgruppe = $_POST['zielgruppe']; } else { $zielgruppe = array('zielgruppe1', 'zielgruppe2', 'zielgruppe3', 'zielgruppe4'); } ?>
<strong>Eigenschaft</strong><br />
<div>
<label for="eigenschaft1">
<input type="checkbox" name="eigenschaft[]" id="eigenschaft1" value="eigenschaft1" <?php if (in_array('eigenschaft1', $eigenschaft)) { echo 'checked="checked"'; } ?> /> eigenschaft1
</label>
<label for="eigenschaft2">
<input type="checkbox" name="eigenschaft[]" id="eigenschaft2" value="eigenschaft2" <?php if (in_array('eigenschaft2', $eigenschaft)) { echo 'checked="checked"'; } ?> /> eigenschaft2
</label>
<label for="eigenschaft3">
<input type="checkbox" name="eigenschaft[]" id="eigenschaft3" value="eigenschaft3" <?php if (in_array('eigenschaft3', $eigenschaft)) { echo 'checked="checked"'; } ?> /> eigenschaft3
</label>
</div>
<strong>Zielgruppe</strong><br />
<div>
<label for="zielgruppe1">
<input type="checkbox" name="zielgruppe[]" id="zielgruppe1" value="zielgruppe1" <?php if (in_array('zielgruppe1', $zielgruppe)) { echo 'checked="checked"'; } ?> /> zielgruppe1
</label>
<label for="zielgruppe2">
<input type="checkbox" name="zielgruppe[]" id="zielgruppe2" value="zielgruppe2" <?php if (in_array('zielgruppe2', $zielgruppe)) { echo 'checked="checked"'; } ?> /> zielgruppe2
</label>
<label for="zielgruppe3">
<input type="checkbox" name="zielgruppe[]" id="zielgruppe3" value="zielgruppe3" <?php if (in_array('zielgruppe3', $zielgruppe)) { echo 'checked="checked"'; } ?> /> zielgruppe3
</label>
<label for="zielgruppe4">
<input type="checkbox" name="zielgruppe[]" id="zielgruppe4" value="zielgruppe4" <?php if (in_array('zielgruppe4', $zielgruppe)) { echo 'checked="checked"'; } ?> /> zielgruppe4
</label>
<div>
<input type="submit" name="submit" value="Suchen">
</div>
</div>
</form>
</fieldset>
Alles anzeigen
Die Abfrage sieht wie folgt aus:
PHP
<?php
$args = array(
'post_type' => 'beispiel',
'meta_query' => array( array( 'key' => 'eigenschaft', 'compare' => 'LIKE', 'value' => $eigenschaft,),),
'tax_query' => array( array( 'taxonomy' => 'zielgruppe', 'field' => 'slug', 'terms' => $zielgruppe,),),
'post_status' => 'publish',
'posts_per_page' => -1 );
$query = new WP_Query( $args );
?>
Mit Blick auf die Taxonomy (tax_query) funktioniert das Ganze sehr gut, aber die Meta-Key-Abfrage funktioniert nicht.. wenn ich LIKE benutze verhält sie sich so, als wären alle Checkboxen aktiviert, wenn ich IN benutze so, als wären alle deaktiviert.
Weiß zufällig jemand wie ich meta_query aufbauen müsste, damit die Abfrage funktioniert?
Danke!