Способ, описанный в этом посту, позволяет в любом месте вывести либо получить и записать в переменную номер страницы, на которой вы находитесь, применимо для:
- страниц архивов постов — рубрики, метки, пользовательские таксономии,
- главной страницы блога (если она используется для вывода постов),
- страниц с произвольными шаблонами (если они также используются для вывода постов).
Работает на основе get_query_var(), которая, в свою очередь, использует глобальный объект $wp_query
— это означает, что функция видит только главный цикл страницы, то есть функция будет также работать для цикла query_posts(), но не будет работать для WP_Query.
$pageNum=(get_query_var('paged')) ? get_query_var('paged') : 1; // получаем номер текущей страницы и присваиваем значение переменной echo $pageNum; // выводим номер текущей страницы |
Для тех, кто не знаком с сокращенной записью условных операторов (shorthand), вот аналог данного кода:
$pageNum = 1; // по умолчанию номер страницы всегда будет 1 if( $cur_page = get_query_var('paged') ) { $pageNum = $cur_page; } // и выводим результат: echo $pageNum; |
Окей, давайте теперь посмотрим, где и для чего он нам в принципе может пригодиться:
- в хлебных крошках страниц,
- в скрипте (или плагине) постраничной навигации,
- в тайтлах архивов категорий (т.е. для того, чтобы они были уникальными — на мой взгляд, это большой плюс для внутренней seo-оптимизации сайта),
- для произвольного шаблона страницы блога.
Приведу нестандартный пример, который использовал я:
function robots_meta(){ $pageNum=(get_query_var('paged')) ? get_query_var('paged') : 1; if ($pageNum>1) echo '<meta name="robots" content="noindex, follow">'; } |
Функция применялась для внутренней перелинковки и вызывалась между <head>
и </head>
— то есть в рубриках для индексации была доступна только первая страница, на остальных уже вставлялся блокирующий мета тег, зато в каждом посту было несколько ссылок на следующие 5 записей из этой же категории.
Источник: misha.blog