Ich versuche, Ergebnisse basierend auf dem Wert eines Meta-Schlüssels einzuordnen.
Das ist meine Form
<form action="" method="get" data-javo-patch-form-for-result> <input type="hidden" name="location" value="get('location');?>" data-javo-sf-location>
Aber es funktioniert nicht! Wenn Sie einen Rat haben, teilen Sie uns bitte.
Vielen Dank,
Joe
Nachdem ich eineinhalb Tage lang herumgestochert war, fand ich eine Lösung.
Es gab nichts in meinem Thema, das das Suchergebnis neben den Formularaktionen kontrollierte, die waren:
Es war also keine Option, auf einen Code wie diesen (den ich vorher hatte) zuzugreifen, und ich konnte es bei dieser speziellen Stichwortsuche nicht herausfinden.
remove_all_filters('posts_orderby'); $args = Array( 'post_type' => 'item' , 'meta_key' => 'level' , 'orderby' => array('meta_value_num' => 'ASC', 'title' => 'ASC') , 'post_status' => 'publish' , 'posts_per_page' => $ppp , 'paged' => $page ); $the_query = new WP_Query( $args );
Stattdessen wurde die Suchfunktion in der Datei query.php in wp-includes verwendet. Ich änderte diese Datei, fand sie aber zu schwierig.
Die Lösung bestand darin, pre_get_posts zu verwenden und nur die Suchanfrage anzusprechen.
add_action( 'pre_get_posts', 'custom_get_posts' ); function custom_get_posts( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_search() ) { $query->set( 'meta_key', 'level' ); $query->set('orderby', array('meta_value' => 'ASC', 'title' => 'ASC')); } }
Hoffentlich rettet dies jemanden vor massiven Kopfschmerzen.