Список пользователей с пагинацией
Помогите пожалуйста. Вывожу список пользователей. Их много.
Получается их только ограничить по количеству. Как можно сделать с разбивкой на страницы. (1,2,3)
<?php
$us_id = $_GET['uid'];
if ( is_user_logged_in() && $us_id > 0 && $us_id !== "" && is_numeric($us_id)) {
// показываем данные пользователя
$user_info = get_userdata( $us_id );
}
function contributors() {
global $wpdb;
$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name");
// // сколько выдводить
// $authors = new WP_User_Query( array( 'number' => 88888 ) );
//
// /* Пустой объект нам ни к чему, поэтому создаем эту проверку */
// if ( ! empty( $authors->results ) ) {
//
// /* Запускаем цикл (актуально только если параметр fields = all (он стоит по умолчанию) или all_with_meta */
// foreach ( $authors->results as $author ) {
foreach ( $authors as $author ) {
echo "<li class='spisok-users'>";
echo "<p></p>";
echo '<a href="/account/?uid=' . $author->ID . '">' . get_avatar($author->ID);
echo "<p></p>";
echo '<div>';
echo '<span class="color-pf-green">' . get_the_author_meta ('display_name', $author->ID) . '</span></a>';
echo "</div>"; echo "</li>";
}}
?>
<div id="authorlist"><ul> <?php contributors(); ?></ul></div>
https://wordpress.stackexchange.com/questions/57427/how-to-display-pagination-links-for-wp-user-query
или
https://stackoverflow.com/questions/23475520/wordpress-wp-user-query-pagination/24339108
Поверьте, на ваш вопрос уже есть ответы!
спасибо, буду разбираться
сделал, спасибо stepan
<ul> <?php $no=15;// total no of author to display $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; if($paged==1){ $offset=0; }else { $offset= ($paged-1)*$no; } global $wpdb; $authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name"); $us_id = $_GET['uid']; if ( is_user_logged_in() && $us_id > 0 && $us_id !== "" && is_numeric($us_id)) { // количество комментарии $args = array('user_id' => $_GET['uid'], 'count' => true, 'status' => 'approve',); $commratings = get_comments( $args ); } else { $us_id = $user_ID; $args = array('user_id' => $us_id,'count' => true, 'status' => 'approve',); $commratings = get_comments($args); } $user_query = new WP_User_Query( array( 'number' => $no, 'offset' => $offset ) ); if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { echo "<li class='spisok-users'>"; echo '<br/><a href="/account/?uid=' . $author->ID . '">' . get_avatar($author->ID) . '<p></p><span class="color-pf-green">' . get_the_author_meta ('display_name', $author->ID) . '</span></a><br/>'; echo '<a href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts($author->ID) . '</span></a>'; echo ' <span data-tooltip="Комментариев"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span>'; // не работает echo '</li>'; // echo die('test'); } } else { echo 'No users found.'; } ?> </ul> <?php $total_user = $user_query->total_users; $total_pages=ceil($total_user/$no); echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => '?paged=%#%', 'current' => $paged, 'total' => $total_pages, 'prev_text' => '«', 'next_text' => '»', 'type' => 'list', )); ?>Указывай в запросе limit и offset. А также используй paginate_links(), чтобы вывести пагинацию.
В описании по ссылке есть пример "Пример с произвольным запросом WP_Query", по аналогии можно сделать и для get_users().
что-то в этом роде ?