Получить авторов случайно - PullRequest
2 голосов
/ 31 марта 2011

как получить информацию об авторах и постоянную ссылку на страницу автора в случайном порядке. Я проверил новую функцию get_users () для wordpress, которая возвращает автора, но я не могу отсортировать их случайным образом.

вот сайт, на котором я использую код: http://citystir.com

Любая помощь?


Решение: Благодаря theomega я решил проблему. Вот код только для совместного использования сообществом:

$args = array('role' => 'author');

    $authors = get_users($args);
    shuffle($authors);
    $i = 0;
     foreach ($authors as $author): 
           if($i == 4) break;
           //do stuff
           $i++;
         endforeach;

Не установлено ограничение для $ args, потому что мне нужно перемешать всех пользователей. Надеюсь, это поможет кому-то там, в дикой природе. : D Спасибо!

Ответы [ 2 ]

7 голосов
/ 31 марта 2011

Попробуйте

$users = get_users('ciriteria');
shuffle($users)
//users is now shuffled

Использование PHP Shuffle-Function .

0 голосов
/ 11 августа 2017

Мы можем использовать get_users () , чтобы получить список авторов, пользователей с определенной ролью, пользователя с определенной мета и т. Д. Функция возвращает пользователей, которых можно упорядочить по ID, логину, нику, электронная почта, URL, зарегистрированный, display_name, post_count или meta_value.Но здесь нет случайной опции, такой как то, что функция get_posts () предоставляет для случайного отображения сообщений.

Поскольку функция get_users () использует класс WP_User_Query, есть хук действия pre_user_query, который мы можем использоватьизменить переменную класса.Идея состоит в том, чтобы использовать наш собственный «рандовый» порядок по параметрам.Если мы поместим «rand» в параметр orderby, вместо него будет использоваться «user_login».В этом случае нам нужно заменить его на RAND () , чтобы случайным образом приводить пользователей.В этом примере ниже мы «рандируем», и вы можете использовать свой собственный порядок по имени.

add_action( 'pre_user_query', 'my_random_user_query' );

function my_random_user_query( $class ) {
    if( 'rand' == $class->query_vars['orderby'] )
        $class->query_orderby = str_replace( 'user_login', 'RAND()', $class->query_orderby );

    return $class;
}

WP_User_Query содержит порядок по запросу и аргументы our.Теперь у нас есть новый порядок по параметрам для WordPress.

$users = get_users( array(
    'orderby' => 'rand',
    'number'  => 5
));
print_r( $users );

Ссылка: http://www.codecheese.com/2014/05/order-wordpress-users-random/

...