Intereting Posts
Настройка административных панелей редактирования и позиций метабокса и видимость для всех пользователей и администраторов PHP: Как получить доступ к db в плагине? WP_Query внутри существующего wp_query останавливает следующую запись, показывающую Получите post_meta из определенного сообщения Использование add_rewrite_rule Изменить порядок сортировки при использовании 'orderby' => 'type' Передача из регистра плюс для регистрации плюс плагин redux Сохранение идентификатора сообщения для использования в форме в другом месте на веб-сайте Добавить пользователя в конкретный блог, когда они регистрируются? Многопользовательская проблема wp_get_attachment_image_src скрыть определенные файлы шаблонов в редакторе apearance Как изменить wp_get_archives (), чтобы не использовать шаблон archive.php? Локальная установка 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; } 

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

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