Intereting Posts
Почтовый архив для определенного формата сообщения Как я могу отправить идентификатор по URL-адресу? Переместить файлы WordPress в подпапку Изменение пользовательских страниц управления пользователями Встраивание CartoDB не работает удалить $ _GET-параметр из WP_List_Table :: tablenav Использование коротких кодов в WP-меню в WP 3.1 (через nav_menu_objects)? нужна помощь с надписью «… читать дальше» в functions.php Получить количество дней с последнего поста текущего пользователя как я могу легко очистить ошибку «заголовок неверно» при попытке переподключения социальных учетных записей в jetpack CDN: URL-адрес исходного сервера, файлы WordPress Core, установленные в подкаталоге Добавьте дополнительные данные к определенному термину таксономии при использовании в должности Показывать изображения из раздела TEXT на PAGE wordpress У get_template_directory есть странная функциональность Расчет даты из 2 настраиваемых полей

Разбиение страницы WP_Query не работает в области администрирования

Я создал пользовательскую страницу плагина. На этой странице я перечисляю сообщения, используя wp_query () . Он работает нормально. Я хочу добавить разбивку на страницы, но это не сработает, даже если я использую код, указанный в кодексе :

<?php // set the "paged" parameter $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; // the query $the_query = new WP_Query( 'posts_per_page=2&paged=' . $paged ); if ( $the_query->have_posts() ) : // the loop while ( $the_query->have_posts() ) : $the_query->the_post(); the_title(); endwhile; // next_posts_link() usage with max_num_pages next_posts_link( 'Older Entries', $the_query->max_num_pages ); previous_posts_link( 'Newer Entries' ); // clean up after the query and pagination wp_reset_postdata(); else: echo 'Sorry, no posts matched your criteria.'; endif; ?> 

При нажатии на ссылку для разбивки на страницы он загружает новую страницу с одинаковыми сообщениями. Почему это не работает в области wp-admin ?

Мило отметил, что $wp_query wp-admin нет объекта $wp_query , поэтому мы можем получить $paged через:

 $paged = ( $_GET['paged'] ) ? $_GET['paged'] : 1; 

Теперь, когда у нас есть $paged , мы можем закодировать нашу собственную разбивку на страницы. Я продемонстрирую, как в самой простой форме.

Сначала давайте получим страницы с максимальными страницами:

 $max_pages = $the_query->max_num_pages; 

Затем вычислите следующую страницу:

 $nextpage = $paged + 1; 

Наконец, давайте создадим ссылку для разбивки на страницы. Мы выполняем базовую инструкцию if, если $max_pages больше $paged :

 if ($max_pages > $paged) { echo '<a href="admin.php?page=plugin-page.php&paged='. $nextpage .'">Load More Topics</a>'; } 

Это так просто.

Обновить

Чтобы включить предыдущую страницу, вы можете просто добавить:

 $prevpage = max( ($paged - 1), 0 ); //max() will discard any negative value if ($prevpage !== 0) { echo '<a href="admin.php?page=plugin-page.php&paged='. $prevpage .'">Previous page</a>'; }