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

22

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

Спасибо.

Рутвик Гангурде
источник

Ответы:

24
// get current page we are on. If not set we can assume we are on page 1.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// are we on page one?
if(1 == $paged) {
    //true
}
Brady
источник
4
Это правильно, но вызов get_query_var( 'paged' )дважды является излишним. Необязательный второй параметр этой функции является значением по умолчанию. Итак, вы могли бы упростить это до: $paged = get_query_var( 'paged', 1 );
Линнея Хаксфорд
Авг 2017: Это не работает для меня, выводит 1 на каждой странице. Однако ответ Майкла сработал идеально.
Surjith SM
32

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

if ( !is_paged() ) {
  // first page of pagination
}
Майкл
источник
Этот работал для меня. (Август 2017 г.) Каким-то образом ответ помечен как правильный, не работает ..
Surjith SM
Отлично, чисто и просто.
трассировка DeCoy
4

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

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

/**
 * Display post pages link navigation for previous and next pages.
 *
 * @since 0.71
 *
 * @param string $sep Optional. Separator for posts navigation links.
 * @param string $prelabel Optional. Label for previous pages.
 * @param string $nxtlabel Optional Label for next pages.
 */
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)) {
    // do not use posts_nav_link()
} else {
    // use posts_nav_link()
}

Первоначально опубликовано в моем блоге здесь .

iglvzx
источник