В ситуации, когда на страницу приходится 20 постов. Я хотел бы получить номер текущей страницы, чтобы сделать несколько хороших ссылок на страницу внизу. Как вы получаете текущую страницу. Я пробовал это
<?php echo '(Page '.$page.' of '.$numpages.')';?>
и это просто говорит страницу 1 из 1 на каждой странице.
Когда WordPress использует разбиение на страницы, как это, существует переменная запроса, на $pagedкоторую он указывает. Итак, страница 1 есть, $paged=1а страница 15 есть $paged=15.
Вы можете получить значение этой переменной с помощью следующего кода:
Получить общее количество страниц немного сложнее. Сначала вы должны сосчитать все сообщения в базе данных. Затем выберите фильтр, по которому публикуются сообщения (по сравнению с черновиками, расписанием, мусором и т. Д.). Затем вы должны разделить это количество на количество сообщений, которые вы ожидаете увидеть на каждой странице:
Почему бы не использовать $wp_query->max_num_pages?
t31os
1
Это разумная альтернатива. Часть, которую $wp_queryя полностью забыл, была там: - /
EAMann
@EAMann BTW: есть также found_postsсвойство «Общее количество найденных сообщений, соответствующих текущим параметрам запроса», wp_count_posts () является своего рода издержками.
jave.web
8
Вы можете сделать это с помощью одной строки кода, но с другой стороны, вы можете добавить код в других местах, поэтому функция обычно более полезна.
Просто вызовите функцию, в которой вы хотите показать сообщение «Страница x of y», например.
<?php current_paged();?>
Если вам нужен код для работы с пользовательским запросом, т.е. тот, который вы создали с помощью WP_Query, а затем просто передайте имя переменной, которая содержит запрос к функции.
Один вариант, который работает на всех моих страницах архива, это:
$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;if( $paged_maxnum >1){
$paged_current_page = get_query_var('paged')? intval( get_query_var('paged')):1;
$title_page_nrs ='page nr '. $paged_current_page .' of '. $paged_maxnum;
echo '<title>'. get_the_archive_title('',false).' - '. $title_page_nrs .' | Your Website Name</title>';}else{
echo '<title>'. get_the_archive_title('',false).' | Your Website Name</title>';}
Сначала запросите, если есть более одной страницы wp_query, затем объедините заголовок с текущей страницей через $paged_current_pageи общим количеством страниц с $title_page_nrs. Наконец echoэто. Если сначала выше 1 страницы, то elseесли не выкладывается. Это идет в мой archive.php или шаблоны для этого типа. Это производит:
<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
$wp_query->max_num_pages
?$wp_query
я полностью забыл, была там: - /found_posts
свойство «Общее количество найденных сообщений, соответствующих текущим параметрам запроса», wp_count_posts () является своего рода издержками.Вы можете сделать это с помощью одной строки кода, но с другой стороны, вы можете добавить код в других местах, поэтому функция обычно более полезна.
ПРИМЕЧАНИЕ: код может войти в ваш файл функций.
Просто вызовите функцию, в которой вы хотите показать сообщение «Страница x of y», например.
Если вам нужен код для работы с пользовательским запросом, т.е. тот, который вы создали с помощью
WP_Query
, а затем просто передайте имя переменной, которая содержит запрос к функции.Пример несуществующего запроса:
Получение текущей страницы для пользовательского запроса с помощью функции, опубликованной ранее.
Если вы хотите полностью забыть о поддержке пользовательских запросов и ищете однострочник, то это должно быть сделано ..
Надеюсь, это поможет.. :)
источник
$var
является ли запрос:if( is_a( $var, 'WP_Query' ) )
вернёт ли он true, если это объект запроса.Как упомянуто выше - более простой способ получить максимальное количество страниц:
источник
Один вариант, который работает на всех моих страницах архива, это:
Сначала запросите, если есть более одной страницы
wp_query
, затем объедините заголовок с текущей страницей через$paged_current_page
и общим количеством страниц с$title_page_nrs
. Наконецecho
это. Если сначала выше 1 страницы, тоelse
если не выкладывается. Это идет в мой archive.php или шаблоны для этого типа. Это производит:<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
или же
<title>Taxonomy title | Your Website Name</title>
источник