Mehrere Meta-Abfragen, jedoch nach spezifischer Reihenfolge der Meta-Werte geordnet

Ich arbeite an einer function, die mir Anwälte nach Kriterien vermittelt. Die function funktioniert einwandfrei. Kürzlich habe ich einen 'is_endorsed' namens 'is_endorsed' . Der Wert kann entweder '1' oder '0' .

Ich muss den bestätigten Benutzer über die Ergebnisse bringen. Seit wir die Endorsement-function angewendet haben. Einige Mitglieder sind auf '1' und einige auf '0' . Und die meisten von ihnen haben nicht einmal 'is_endorsed' Meta-Schlüssel 'is_endorsed' in ihrer Tabelle wp_usermeta .

Der folgende Code funktioniert ohne Endorsement-Filter. Ich habe alle möglichen Veränderungen ausprobiert, die ich kannte, jetzt nervt es mich. Bitte schau und gib mir ein paar Tipps.

 function find_lawyer( $country = '', $state = '', $city = '' ) { $meta_query = array( array( 'key' => 'user_locations', 'compare' => '!=', 'value' => '' ), array( 'key' => 'is_published', 'compare' => '=', 'value' => '1' ), ); if ( $country ) { $meta_query[] = array( 'key' => 'user_locations', 'compare' => 'REGEXP', 'value' => '([\w|]*)country:' . $country . '([\w|]*)' ); } if ( $state ) { $meta_query[] = array( 'key' => 'user_locations', 'compare' => 'REGEXP', 'value' => '([\w|]*)state:' . $state . '([\w|]*)' ); } if ( $city ) { $meta_query[] = array( 'key' => 'user_locations', 'compare' => 'REGEXP', 'value' => '([\w|]*)city:' . $city . '([\w|]*)' ); } $users_query = new WP_User_Query( array( 'role' => 'lawyer', 'meta_query' => $meta_query ) ); return $users_query->get_results(); } 

Und hier ist, was ich versucht habe. Es gibt mir nur Benutzer mit 'is_endorsed' = '1' .

 function find_lawyer( $country = '', $state = '', $city = '' ) { $meta_query = array( array( 'key' => 'user_locations', 'compare' => '!=', 'value' => '' ), array( 'key' => 'is_published', 'compare' => '=', 'value' => '1' ), array( 'relation' => 'OR', array( 'key' => 'is_endorsed', 'value' => '1', 'compare' => 'EXISTS', ), array( 'key' => 'is_endorsed', 'compare' => 'NOT EXISTS' ) ) ); // And so on... $users_query = new WP_User_Query( array( 'role' => 'lawyer', 'meta_query' => $meta_query, 'orderby' => 'meta_value_num', ) ); return $users_query->get_results(); } 

Solutions Collecting From Web of "Mehrere Meta-Abfragen, jedoch nach spezifischer Reihenfolge der Meta-Werte geordnet"