Hallo,
ich baue für ein Lernprojekt ein Immobilienportal auf, habe einen custom post type "immobilie" und nutze Advanced Custom Fields, um Informationen wie den Kaufpreis der Immobilie abzubilden.
Wenn ich die WP_Query wie unten abgebildet ausführe und nur die Variablen $cat und §ort befülle, liefert die Query korrekte Ergebnisse. Wenn ich jedoch zusätzlich die Variable $preis_bis befülle mit einem Preis der ÜBER dem Kaufpreis der Immobilie liegt, wird zwar ein Ergebnis angezeigt und wenn ich $preis_bis niedriger eingebe, keines. Soweit so richtig. Wenn ich $preis_bis aber mit "9" befülle, wird die Immobilie ausgegeben. Gebe ich "1" ein -> kein Ergebnis. Die Variablen werden per Formular GET Methode an die Seite übermittelt. Ich habe schon versucht den Kaufpreis in php als (int) zu casten, kein Unterschied.
Kann dies daran liegen, dass ich in acf das Kaufpreis-Feld erst als "Text einzeilig" angegeben habe und später (nach Eingeben der Immobilien im Backend) das Feld auf "Nummerisch" umgestellt habe?
Andere mögliche Fehlerquelle: ich habe mehrere Feldgruppen in acf, je nach Kategorie der Immobilie. Diese enthalten das Feld "Kaufpreis" jeweils 1x.
Ausserdem macht mich derzeit in acf stutzig, dass ich ein Feld mit der exakt selben Feldbezeichnung innerhalb einer Feldgruppe mehrfach anlegen kann, das scheint mir inkonsistent zu sein.
Bin für jeden Tipp dankbar!
$bpb_args = array(
'numberposts' => -1,
'post_type' => 'immobilie',
'post_status' => 'publish',
'cat' => $cat,
'update_post_meta_cache' => false,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'ort',
'value' => $ort,
'compare' => '=',
),
array(
'key' => 'kaufpreis',
'value' => $preis_bis,
'compare' => '<',
),
array(
'key' => 'zimmer',
'value' => $anzahl_raeume,
'compare' => '>=',
),
array(
'key' => 'wohnflache',
'value' => $wonflaeche,
'compare' => '>',
)
)
);
$bpb_query = new WP_Query( $bpb_args );
if( $bpb_query->have_posts() ):
while( $bpb_query->have_posts() ) : $bpb_query->the_post();
echo "<a href='".get_permalink( get_the_ID() )."'>".esc_html( get_the_title() )."</a>";
endwhile;
endif;
Alles anzeigen