답변:
WordPress에서 이와 같은 페이지 매김을 사용 $paged
하는 경우 키 입력 하는 쿼리 변수 가 있습니다. 따라서 1 $paged=1
페이지는 15 페이지는 $paged=15
입니다.
다음 코드를 사용하여이 변수의 값을 얻을 수 있습니다.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
총 페이지 수를 얻는 것은 약간 까다 롭습니다. 먼저 데이터베이스의 모든 게시물을 계산해야합니다. 그런 다음 게시물이 게시되는 기준 (임시, 예약, 휴지통 등)을 필터링합니다. 그런 다음 이 수를 각 페이지에 나타날 것으로 예상되는 게시물 수로 나누어야합니다.
$total_post_count = wp_count_posts();
$published_post_count = $total_post_count->publish;
$total_pages = ceil( $published_post_count / $posts_per_page );
아직 테스트하지는 않았지만을 사용하여 $posts_per_page
가져온 것과 같은 방식 으로 가져와야 할 수도 있습니다 .$paged
get_query_var()
$wp_query
내가 완전히 잊어 버린 부분은 :-/
found_posts
"현재 쿼리 매개 변수와 일치하는 총 게시물 수"속성 도 있습니다. wp_count_posts ()는 일종의 오버 헤드입니다.
한 줄의 코드로 수행 할 수 있지만 다시 다른 장소에 코드를 추가 할 수 있으므로 기능이 더 유용합니다.
function current_paged( $var = '' ) {
if( empty( $var ) ) {
global $wp_query;
if( !isset( $wp_query->max_num_pages ) )
return;
$pages = $wp_query->max_num_pages;
}
else {
global $$var;
if( !is_a( $$var, 'WP_Query' ) )
return;
if( !isset( $$var->max_num_pages ) || !isset( $$var ) )
return;
$pages = absint( $$var->max_num_pages );
}
if( $pages < 1 )
return;
$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
echo 'Page ' . $page . ' of ' . $pages;
}
참고 : 코드는 함수 파일로 이동할 수 있습니다.
예를 들어 "Page x of y"메시지를 표시하려는 함수를 호출하면됩니다.
<?php current_paged(); ?>
사용자 정의 쿼리로 작업하기 위해 코드가 필요한 경우, 즉 를 사용하여 생성 WP_Query
한 다음 쿼리를 함수에 보유하는 변수의 이름을 전달하십시오.
존재하지 않는 쿼리 예 :
$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() )
... etc..
이전에 게시 된 함수를 사용하여 사용자 정의 쿼리에 대한 현재 페이지 가져 오기 ..
<?php current_paged( 'fred' ); ?>
사용자 지정 쿼리 지원을 완전히 잊고 원 라이너를 찾고 있다면 그렇게해야합니다.
<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>
희망이 도움이 .. :)
$var
쿼리 인지 확인 합니다 : if( is_a( $var, 'WP_Query' ) )
그것이 쿼리 객체라면 true를 반환합니다.
위에서 언급했듯이 최대 페이지 수를 얻는 간단한 방법은 다음과 같습니다.
global $wp_query
$wp_query->max_num_pages
모든 아카이브 페이지에서 작동하는 옵션은 다음과 같습니다.
$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;
if ( $paged_maxnum > 1 ) {
$paged_current_page = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
$title_page_nrs = 'page nr ' . $paged_current_page . ' of ' . $paged_maxnum;
echo '<title>' . get_the_archive_title( '', false ) . ' - ' . $title_page_nrs . ' | Your Website Name</title>';
} else {
echo '<title>' . get_the_archive_title( '', false ) . ' | Your Website Name</title>';
}
이 페이지에 둘 이상의 페이지가 있으면 먼저 쿼리 wp_query
한 다음 제목을 현재 페이지 비아 $paged_current_page
와 총 페이지 수로 연결하십시오 $title_page_nrs
. 마지막으로 echo
그것. 1 페이지 이상인 else
경우 if는 페이징되지 않습니다. 이것은 내 archive.php 또는이 유형의 템플릿으로 이동합니다. 다음을 생성합니다.
<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
또는
<title>Taxonomy title | Your Website Name</title>
$wp_query->max_num_pages
않습니까?