Як визначити, чи перебуваю я на першій сторінці сторінки?


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
}

4
Це правильно, але виклик get_query_var( 'paged' )двічі є зайвим. Необов’язковим другим параметром цієї функції є значення за замовчуванням. Отже, ви можете спростити це до: $paged = get_query_var( 'paged', 1 );
Linnea Huxford

Серпень 2017: Цей для мене не працює, його вихід 1 на кожній сторінці. Однак відповідь Майкла спрацювала ідеально.
Surjith SM

32

якщо ви хочете знати, що ви перебуваєте на першій сторінці сторінки, що страждає, спробуйте is_paged():

if ( !is_paged() ) {
  // first page of pagination
}

Цей працював на мене. (Серпень 2017 р.). Якась відповідь позначена як правильна не працює ..
Surjith SM

Відмінна, чиста і проста.
Trace 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()
}

Спочатку розміщений на моєму блозі тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.