Почему пользователи get внезапно возвращают дубликаты?


Мне трудно разобраться в этом вопросе.

Я выполняю простой запрос пользователей:

$args = array(
    'role' => 'custom_role',
    'orderby' => 'ID',
    'order' => 'DESC',
    'number' => 3
);
$users = get_users( $args );

И полученный массив содержит повторяющиеся записи:

Array
(
    [0] => stdClass Object
        (
            [ID] => 11433
            [user_login] => peterpanpan
            [user_pass] => $P$B1SJOYhvsDRBGLU4hpr4zsdffJdDD.Y0
            [user_nicename] => peterpanpan
            [user_email] => **********@gmail.com
            [user_url] => 
            [user_registered] => 2011-11-29 14:20:46
            [user_activation_key] => 
            [user_status] => 0
            [display_name] => Peter Pan
        )

    [1] => stdClass Object
        (
            [ID] => 11433
            [user_login] => peterpanpan
            [user_pass] => $P$B1SJOYhvsDRBGLU4hpr4zsdffJdDD.Y0
            [user_nicename] => peterpanpan
            [user_email] => **********@gmail.com
            [user_url] => 
            [user_registered] => 2011-11-29 14:20:46
            [user_activation_key] => 
            [user_status] => 0
            [display_name] => Peter Pan
        )

    [2] => stdClass Object
        (
            [ID] => 10663
            [user_login] => dmartin
            [user_pass] => $P$BLFk4yteiCQnVbyXMbMy4jOpBbytw3/
            [user_nicename] => enfont
            [user_email] => **********@yahoo.fr
            [user_url] => 
            [user_registered] => 2011-11-09 14:03:49
            [user_activation_key] => 
            [user_status] => 0
            [display_name] => Deanmartin
        )

)

В примере $users[0] и $users[1] абсолютно одинаковы. В базе данных нет дубликатов.

Это начало происходить недавно, и единственное, что было добавлено, - это плагин W3 Total Cache (но почему это может вызвать такое поведение?). Я попытался отключить его, но дубликаты остаются.

Кто-нибудь имеет представление о том, что здесь может происходить?

Author: mike23, 2011-12-05

2 answers

Кажется глупым вопросом, но есть ли в базе данных ровно 2 пользователя? Или есть еще что-то.

Единственное, что я вижу, происходит, потому что вы устанавливаете значение 3, оно повторяется.

Еще одна вещь, которую нужно попробовать, - это проверить пользователя peterpanpan, чтобы увидеть, есть ли у него custom_role дважды в его user_meta.

 1
Author: Eric Holmes, 2012-08-16 14:28:21

Может быть, вы можете добавить отдельный фильтр для get_users? http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_distinct

Просто плевок..

 0
Author: woony, 2012-08-16 14:43:30