Как разбить на страницы функцию get_users?

#function #pagination

#функция #разбивка на страницы

Вопрос:

Я использую функцию get_users для отображения пользовательского списка пользователей на сайте. Единственная проблема, с которой у меня возникла проблема, — это как разбить результат на страницы.

Это пример функции, которую я использую:

 <ul>
    <?php

    $args = array(
        'meta_key' => 'jabber',
        'meta_value' => 'User Name',
        'meta_compare' => 'LIKE',
        'order' => 'ASC',
        'count_total' => true,
        'fields' => 'all',
      );


    $blogusers = get_users($args_1);
    foreach ($blogusers as $user) {

        $user_id = $user->ID; 
        $user = get_userdata($user_id);

          echo '<li class="provider-list prov-list-gradient">' . $user->display_name . '</li>';

    }
    ?>

    </ul>
  

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

Обновить:

Это исходный код функции get_users:

 function get_users( $args = array() ) {

            $args = wp_parse_args( $args );
            $args['count_total'] = false;

            $user_search = new WP_User_Query($args);

            return (array) $user_search->get_results();
    }
  

Ответ №1:

При условии, что вы запускаете get_users() перед загрузкой каждой страницы N результатов, вы можете пересмотреть свой get_users() запрос, чтобы использовать OFFSET ключевое слово в mysql.

Пример псевдозапроса (где P ваш номер страницы):

 SELECT * FROM USERS LIMIT N OFFSET N*P
  

Комментарии:

1. Спасибо, веселые землетрясения. Я добавил параметр offset в свой запрос. Значение равно 8. Насколько я понимаю, смещение пропускает количество пользователей в результатах. Я собираюсь загрузить функцию get_users в файл php и получить список результатов foreach с использованием страницы шаблона. Я собираюсь установить N равным 8, чтобы на странице было 8 результатов. Как я могу использовать ваш пример mysql для реализации вашего решения?

2. Многое зависит от вас, но я подумал, может быть, в вашем массиве $ args будет другая пара ключ / значение, соответствующая текущей странице, на которой вы находитесь (например, ‘currentPage’=> ‘1’). Затем, когда ваш запрос генерируется в get_users, вы можете добавить выражение смещения. $query=’… ОГРАНИЧЕНИЕ ‘.N.’ СМЕЩЕНИЕ ‘.N*currentPage

3. Хорошо, есть параметр «number», который «ограничивает общее количество возвращенных пользователей». Может быть, это то, что я мог бы использовать с вашим решением… Но если это правильно, мне нужно будет установить неограниченное число , так как у меня может быть большое количество результатов. Включив параметр number и offset , я, вероятно, мог бы использовать приведенный вами пример, чтобы заставить работать разбивку на страницы… Что вы думаете?

4. Похоже, вы на правильном пути. Наверное, я немного запутался в функции get_users(). Я мог бы дать лучший совет, если бы мог увидеть исходный код этой функции.

5. Привет, Mirthquakes, я обновил сообщение исходным кодом get_users.