Intereting Posts
Каковы ограничения wp_update_post ()? Он не работает с конкатенацией в function.php Ссылки в боковой панели не отображаются Верхний колонтитул WordPress на Firefox отображает ошибку Как исправить ошибку "file_get_contents был найден в файле functions.php"? Есть ли веская причина для двух файлов CSS для @import друг друга? Как добавить несколько размеров изображения одного и того же размера с помощью add_image_size Добавить расширение .htm к пользовательской таксономии Отладка, почему избранные изображения перестали отображаться в WooCommerce на главной странице Как рассчитывается сила пароля? get_the_post_thumbnail_url с незарегистрированным размером Как удалить / скрыть вкладку «SEO» Yoast в панели администратора? Как изменить wp.media для получения и отображения нескольких изображений Пользовательский тип сообщения с принудительным фиксированным соотношением размеров изображения Возможно ли сделать WordPress PHP быстрее с помощью кеширования или компиляции?

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

В ситуации, когда у одного есть 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; ?> 

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