Intereting Posts
Создайте предварительно отфильтрованную версию медиа-библиотеки Ссылки, смещенные на моей странице Добавить ссылку в приложение для старых сообщений Контактный формуляр 7 Плагиновые электронные письма, которые не принимаются некоторыми учетными записями как передать wordpress sql / database из локального в live get_posts получает только последний продукт Как разрешить регистрацию только с определенного места? Создавать отзывчивые миниатюры одинакового размера Media Modal не обновляется с загрузкой файла Как использовать wp_send_json_error? Yoast: мне все еще нужно вручную вставлять метатеги в мою тему, или Yoast сделает это для меня? Как я могу поставить мета-окно над редактором, но ниже раздела заголовка на странице редактирования сообщений? Как установить «WordPress для ios» на симулятор iPhone / iPad от Apple SDK? Как добавить разделитель между стандартными и настраиваемыми панелями в настройке WordPress? Пользовательские сортируемые страницы в настраиваемом типе сообщений

Несколько мета-запросов, но упорядочиваются по определенному порядку метазначения

Я работаю над функцией, которая дает мне адвокатов на основе критериев. Функция работает нормально. Недавно я добавил мета-ключ с именем 'is_endorsed' . Значение может быть либо '1' либо '0' .

Мне нужно привести одобренного пользователя поверх результатов. Поскольку мы применили функцию одобрения. Для некоторых участников установлено значение '1' , а некоторые – '0' . И большинство из них даже не имеют мета-ключа wp_usermeta таблице wp_usermeta .

Следующий код работает без фильтра одобрения. Я пробовал все возможные модификации, которые я знал, теперь он нервничает. Пожалуйста, взгляните и дайте мне несколько советов.

 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(); } 

И вот что я пробовал. Это дает мне только пользователей, имеющих '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(); }