Intereting Posts
Пользовательский тип сообщения – список всех вложений на экране редактирования Объектно-ориентированный плагин, добавьте действие и переменные Переадресация цикла при пересылке на мобильный сайт Рекомендуемый способ удаления ожидающего запроса (в pre_get_posts)? порядок несколькими мета ключами в pre_get_posts Странная проблема с персонализированными сообщениями Как добавить косую черту в конец wordpress домой? Саморазвитие или плагин как первый вариант? Когда и зачем использовать $ wpdb разные типы возвращаемых данных? Изменение размера эскизов ретроспективно Как использовать служебную программу для начинающих, чтобы показать некоторые меню по умолчанию? Удалить комментарии MS Word из вставленного текста Как синхронизировать с обновлением плагинов после того, как я сделал ручную оптимизацию? Отзывчивая тема с использованием запросов @media, стилей, построенных с помощью PX как UOM, с проблемами макета при увеличении браузера Показать биографию автора

Получить текущий номер страницы

В ситуации, когда у одного есть 20 сообщений на странице. Я хотел бы получить текущий номер страницы, чтобы сделать несколько хороших ссылок на страницы внизу. Как получить текущую страницу. Я попробовал это

<?php echo '(Page '.$page.' of '.$numpages.')'; ?> 

и он просто говорит страницу 1 из 1 на каждой странице.

Есть идеи,

дивный

Solutions Collecting From Web of "Получить текущий номер страницы"

Когда WordPress использует разбиение на страницы так, есть переменная запроса $paged которую она набирается. Итак, страница 1 – $paged=1 а страница 15 – $paged=15 .

Вы можете получить значение этой переменной со следующим кодом:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

Получение общего количества страниц немного сложнее. Сначала вы должны считать все записи в базе данных. Затем фильтруйте публикацию сообщений (в отличие от черновиков, расписаний, мусора и т. Д.). Затем вам нужно разделить этот счет на количество сообщений, которые вы ожидаете появиться на каждой странице:

 $total_post_count = wp_count_posts(); $published_post_count = $total_post_count->publish; $total_pages = ceil( $published_post_count / $posts_per_page ); 

Я еще не тестировал это, но вам может потребоваться получить $posts_per_page же, как вы get_query_var() $paged (используя get_query_var() ).

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

 function current_paged( $var = '' ) { if( empty( $var ) ) { global $wp_query; if( !isset( $wp_query->max_num_pages ) ) return; $pages = $wp_query->max_num_pages; } else { global $$var; if( !is_a( $$var, 'WP_Query' ) ) return; if( !isset( $$var->max_num_pages ) || !isset( $$var ) ) return; $pages = absint( $$var->max_num_pages ); } if( $pages < 1 ) return; $page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; echo 'Page ' . $page . ' of ' . $pages; } 

ПРИМЕЧАНИЕ. Код может войти в ваш файл функций.

Просто вызовите функцию, в которой вы хотите показать сообщение «Страница x of y», например.

 <?php current_paged(); ?> 

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

Пример несуществующего запроса:

 $fred = new WP_Query; $fred->query(); if( $fred->have_posts() ) ... etc.. 

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

 <?php current_paged( 'fred' ); ?> 

Если вы хотите просто полностью забыть о поддержке пользовательских запросов, и вы ищете однострочный, то это должно сделать это.

 <?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?> 

Надеюсь, это поможет.. 🙂