Как определить, что я нахожусь на первой странице пагинации?

14 окт. 2011 г., 08:58:17
Просмотры: 41.6K
Голосов: 26

Как определить, что я нахожусь на самой первой странице пагинации? Я использую WP_Pagenavi. Я хочу запустить функцию только на первой странице пагинации. Я проверил query_var 'paged', на этой странице он установлен на 0, а затем 2, 3 и так далее на последующих страницах (1 отсутствует!)... Кто-нибудь знает элегантное решение?

Спасибо.

0
Все ответы на вопрос 3
5
44

если вам нужно узнать, находитесь ли вы на первой странице пагинации, используйте is_paged():

if ( !is_paged() ) {
  // первая страница пагинации
}
14 окт. 2011 г. 11:31:17
Комментарии

Этот вариант сработал для меня. (Август 2017). Почему-то отмеченный как правильный ответ не работает..

Surjith S M Surjith S M
17 авг. 2017 г. 18:38:08

Отлично, чисто и просто.

Trace DeCoy Trace DeCoy
28 февр. 2018 г. 11:52:06

больше не работает (Январь 2020)

gmatta gmatta
24 янв. 2020 г. 11:28:41

@Gangesh всё работает отлично. Это простое условное выражение в WordPress, см.: https://developer.wordpress.org/reference/functions/is_paged/

crdunst crdunst
19 февр. 2020 г. 14:33:45

Всё ещё работает | Октябрь 2023

businessbloomer businessbloomer
20 окт. 2023 г. 10:46:43
2
31
// получаем текущую страницу. Если не установлена, предполагаем, что это первая страница.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// находимся на первой странице?
if(1 == $paged) {
    // true
}
14 окт. 2011 г. 11:19:43
Комментарии

Это верно, но вызов get_query_var( 'paged' ) дважды является избыточным. Второй параметр этой функции является необязательным и задаёт значение по умолчанию.

Таким образом, можно упростить до:

$paged = get_query_var( 'paged', 1 );

Linnea Huxford Linnea Huxford
5 нояб. 2016 г. 23:38:07

Август 2017: У меня этот вариант не работает, на каждой странице выводится 1. Однако ответ Майкла сработал идеально.

Surjith S M Surjith S M
17 авг. 2017 г. 18:38:55
0

Я искал простой способ определить, нужно ли использовать функцию posts_nav_link(), и все найденные мной решения в интернете были либо слишком сложными, либо ненадёжными. Например, многие предлагали использовать глобальную переменную $paged, но я обнаружил, что эта переменная возвращает одно и то же значение для первой страницы, даже если первая страница является единственной!

Поэтому я углубился в файл wp-includes/link-template.php и обнаружил, что функция posts_nav_link() просто выводит возвращаемое значение другой функции:

/**
 * Отображает навигационные ссылки для перехода между страницами записей.
 *
 * @since 0.71
 *
 * @param string $sep Необязательный. Разделитель для ссылок навигации.
 * @param string $prelabel Необязательный. Текст для ссылки "Предыдущие страницы".
 * @param string $nxtlabel Необязательный. Текст для ссылки "Следующие страницы".
 */
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
    $args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
    echo get_posts_nav_link($args);
}

Используя эти знания, мы можем создать простой и эффективный способ определить, нужно ли добавлять ссылки для навигации между страницами:

$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
    // не используем posts_nav_link()
} else {
    // используем posts_nav_link()
}

Оригинал статьи опубликован в моём блоге.

19 мар. 2013 г. 05:01:31