페이지 매김의 첫 페이지에 있는지 어떻게 확인합니까? WP_Pagenavi를 사용하고 있습니다. 페이지 매김의 첫 페이지에서만 기능을 실행하고 싶습니다. query_var 'paged'를 확인한 후이 페이지에서 0으로 설정 한 후 나중 페이지에서 2, 3 등으로 설정했습니다 (1이 없습니다!) ... 누구나 깨끗한 솔루션을 알고 있습니까?
감사.
페이지 매김의 첫 페이지에 있는지 어떻게 확인합니까? WP_Pagenavi를 사용하고 있습니다. 페이지 매김의 첫 페이지에서만 기능을 실행하고 싶습니다. query_var 'paged'를 확인한 후이 페이지에서 0으로 설정 한 후 나중 페이지에서 2, 3 등으로 설정했습니다 (1이 없습니다!) ... 누구나 깨끗한 솔루션을 알고 있습니까?
감사.
답변:
// 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
}
페이지 매김 페이지의 첫 페이지에 있다는 것을 알고 싶다면 다음을 시도하십시오 is_paged()
.
if ( !is_paged() ) {
// first page of pagination
}
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()
}
원래 내 블로그에 게시 여기에 .
get_query_var( 'paged' )
두 번 호출하는 것은 중복됩니다. 해당 기능의 선택적 두 번째 매개 변수가 기본값입니다. 따라서 다음과 같이 단순화 할 수 있습니다.$paged = get_query_var( 'paged', 1 );