Intereting Posts
незарегистрированный пользователь может писать на странице блога – возможно? как? Настройка нескольких URL-адресов изображений с помощью WordPress 'Media Uploader Функции WP в .js Некоторые Темы не имеют header.php и footer.php, как они это делают? Есть что-то вроде admin_notices для переднего конца? Как узнать, является ли это таксономией ребенка? Почему я получаю случайные комментарии без (необходимого) адреса электронной почты? Количество и количество членов WooCommerce Создание короткого кода и для размещения в конкретных сообщениях для пост-навигации Ошибка SQL wp_commentmeta – неправильное определение таблицы Исключить категорию из запроса, который включает его родительскую категорию wp-admin бросает 500 ошибок после обновления до 4.2.1 Войти участников с помощью веб-служб Автоматическое обновление таблиц из базы данных Скрыть колонку комментариев в бэкэнде WordPress

Пользователь дважды появляется в WP_User_Query

По какой-то причине во время пользовательского запроса с мета-фильтром у меня есть пользователь, который, когда я print_r результаты отображаются дважды в списке …

Я проверил базу данных, на всякий случай, если, похоже, есть повторяющиеся записи, но для пользователя есть только одно значение. Также без мета-запроса пользователь появляется только один раз.

Код:

 $user_query = new WP_User_Query( array( 'role' => 'member', 'orderby' => 'registered', 'order' => 'DESC', 'meta_query' => array( array( 'key' => 'onTrial', 'value' => '1', ), ), ) ); echo '<pre>'; print_r($user_query->results); echo '</pre>'; 

Выходы (наряду со многими другими):

 [54] => WP_User Object ( [data] => stdClass Object ( [ID] => 10410 [user_login] => XXXXXXX@XXXXXXX.co.uk [user_pass] => $P$XXXXXXX [user_nicename] => XXXXXXX-XXXXXXX [user_email] => XXXXXXX@XXXXXXX.co.uk [user_url] => [user_registered] => 2016-02-15 10:52:57 [user_activation_key] => [user_status] => 0 [display_name] => XXXXXXX XXXXXXX ) [ID] => 10410 [caps] => Array ( [member] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => member ) [allcaps] => Array ( [read] => [no_admin_bar] => 1 [member] => 1 ) [filter] => ) [55] => WP_User Object ( [data] => stdClass Object ( [ID] => 10410 [user_login] => XXXXXXX@XXXXXXX.co.uk [user_pass] => $P$XXXXXXX [user_nicename] => XXXXXXX-XXXXXXX [user_email] => XXXXXXX@XXXXXXX.co.uk [user_url] => [user_registered] => 2016-02-15 10:52:57 [user_activation_key] => [user_status] => 0 [display_name] => XXXXXXX XXXXXXX ) [ID] => 10410 [caps] => Array ( [member] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => member ) [allcaps] => Array ( [read] => [no_admin_bar] => 1 [member] => 1 ) [filter] => ) 

Теперь я не могу показать вам детали, но обратите внимание на идентификатор и время регрессии, выведенные также номерами массивов, которые они отображают, [54] и [55]

Никто больше не появляется дважды.

Спасибо заранее – любой ввод оценивается, небольшой или большой.

Solutions Collecting From Web of "Пользователь дважды появляется в WP_User_Query"

Попробуйте это для пинков …

Решение 1

Примечание. Не работает с WP_User_Query (?)

 add_filter('posts_distinct', 'user_meta_query_distinct'); //your query here... remove_filter('posts_distinct', 'user_meta_query_distinct'); function user_meta_query_distinct() { return "DISTINCT"; } 

Решение 2

Можете ли вы попробовать добавить 'relation' => 'OR' в ваш meta_query:

 $user_query = new WP_User_Query( array( 'role' => 'member', 'orderby' => 'registered', 'order' => 'DESC', 'meta_query' => array( 'relation' => 'OR', //should result in a DISTINCT query array( 'key' => 'onTrial', 'value' => '1', ), ), ) ); 

См. Этот diff:

https://core.trac.wordpress.org/attachment/ticket/17582/17582.4.diff

 if ( 'OR' == $meta_query->relation ) { $this->query_fields = 'DISTINCT ' . $this->query_fields; } 

Отслеживается любезность этого тракового билета .

Посмотрите, работает ли это …