페이지 매김의 첫 페이지에 있는지 확인하는 방법은 무엇입니까?


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 년 8 월 : 이것은 나를 위해 작동하지 않으며 모든 페이지에 1을 출력합니다. 그러나 Michael의 대답은 완벽하게 작동했습니다.
Surjith SM

32

페이지 매김 페이지의 첫 페이지에 있다는 것을 알고 싶다면 다음을 시도하십시오 is_paged().

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

이것은 나를 위해 일했습니다. (2017 년 8 월). 어떻게 든 정답이 작동하지 않는 것으로 표시되었습니다 ..
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()
}

원래 내 블로그에 게시 여기에 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.