Sammeln Sie dieselben benutzerdefinierten Feldwerte in einem Wert in einem select-Tag mit wp_query

Ich versuche, spezifische Informationen in einem Select-Tag zu sammeln, um Seiten zu filtern. A haben mehrere Trainingsseiten mit gleichen Preisen (zum Beispiel: $ 80, $ 120, $ 500, etc …). Das Problem ist, wenn eine Abfrage das benutzerdefinierte Feld ‘price_1’ (der variable Preis), wp_query alle Seiten mit Preisen abruft, und die meisten von ihnen haben den gleichen Preis.

Also sieht mein Auswahl-Tag so aus:

Wählen Sie einen Preis: $ 80 $ 80 $ 80 … $ 120 $ 120 $ 120 $ 120 $ 120 $ 500 $ 500 $ 500 $ 500 $ 500 …

Ich würde gerne die gleichen Preise in einem sammeln und wenn man auf eines davon klickt, werden alle Trainingsseiten angezeigt.

Wählen Sie einen Preis: $ 80 $ 120 $ 500 …

Vielen Dank für Ihre Hilfe, wenn Sie einige Ideen haben, an diesem Punkt wird der Code schwierig.

PS: Ich benutze ACF Plugin

Hier ist mein Code:

$args = array( 'post_type'=> 'page', 'posts_per_page' => -1, 'meta_key' => 'prix_1', ); $price_query = new WP_Query( $args ); 
have_posts() ) : while( $price_query->have_posts() ) : $price_query->the_post(); ?>

Solutions Collecting From Web of "Sammeln Sie dieselben benutzerdefinierten Feldwerte in einem Wert in einem select-Tag mit wp_query"

Mit der while-Schleife können Sie alle Werte zu einem Array hinzufügen ( $options ). Dann können Sie beim Durchschleifen von Werten prüfen, ob der gleiche Wert im Array erscheint ( in_array($needle,$haystack) ). Wenn dies der Fall ist, fügen Sie es nicht dem Options-Array hinzu.

Schlingen Sie dann jeden Ihrer sauberen Werte in die Auswahl. Wie ich im Code erwähne, möchten Sie vielleicht die Schleife in eine function einfügen und zwischenspeichern und dann die Werte zurückgeben, wenn Sie die function aufrufen.

Dies ist nicht getestet, aber sollte Sie dorthin bringen:

 < ?php $args = array( 'post_type' => 'page', 'posts_per_page' => '-1', 'meta_key' => 'prix_1', ); $price_query = new WP_Query( $args ); $options = array(); //Instead of leaving this inside the page, should wrap into a function inside functions.php if ( $price_query->have_posts() ) { while ( $price_query->have_posts() ) { $price_query->the_post(); $field = get_field( 'prix_1' ); if ( ! in_array( $field, $options ) ) { $options[] = $field; //add to the array } } //endwhile }//endif ?>