예제가 포함된 5 WordPress 페이지 매김 코드 조각 [단순에서 고급]
게시 됨: 2020-02-03
특정 예제와 함께 WordPress에서 최고의 페이지 매김 코드를 찾고 있다면 이 게시물에서 공유하는 페이지 매김 코드 조각의 예가 매우 유용하다는 것을 알게 될 것입니다. 이 페이지 매김 코드는 WordPress 테마 또는 게시물 페이지 매김이 필요한 사용자 지정 WordPress 플러그인에 적용할 수 있습니다. 추격을 중단하고 내가 가장 좋아하는 페이지 매김 코드 조각을 공유하겠습니다.
#1) 간단한 페이지 매김 코드가 있는 WordPress 루프
WordPress 루프 내에서 페이지 매김을 추가하려면 아래의 다음 및 이전 페이지 매김 코드를 사용할 수 있습니다.
<?php if ( have_posts() ) : ?>
<!-- 여기에 페이지 매김 기능을 추가하십시오. -->
<!-- 메인 루프의 시작. -->
<?php 동안 ( have_posts() ) : the_post(); ?>
<!-- 나머지 테마의 메인 루프 -->
<?php 그 동안; ?>
<!-- 메인 루프의 끝 -->
<!-- 여기에 페이지 매김 기능을 추가하십시오. -->
<div class="nav-previous alignleft"><?php previous_posts_link( '이전 게시물' ); ?></div>
<div class="nav-next alignright"><?php next_posts_link( '최신 게시물' ); ?></div>
<?php 기타 : ?>
<p><?php _e('죄송합니다. 기준에 맞는 글이 없습니다.'); ?></p>
<?php endif; ?>
#2) WordPress 숫자 페이지 매김
또 다른 훌륭한 WordPress 페이지 매김 옵션은 게시물에 숫자를 추가하고 숫자를 기반으로 게시물을 그룹화하는 숫자 페이지 매김을 사용하는 것입니다. 예를 들어 한 페이지에 5개의 게시물을 표시할 수 있습니다. 다음은 숫자 페이지 매김을 위한 WordPress의 페이지 매김 코드입니다 .
<?php
#1단계: 숫자 WordPress 페이지 매김 기능 만들기
함수 njengah_numeric_pagination() {
if( is_singular() )
반품;
전역 $wp_query;
/** 페이지가 1개일 경우 실행 중지 */
if( $wp_query->max_num_pages <= 1 )
반품;
$paged = get_query_var( 'paged' ) ? absint( get_query_var( '페이징' ) ) : 1;
$max = intval( $wp_query->max_num_pages );
/** 배열에 현재 페이지 추가 */
if ( $paged >= 1 )
$links[] = $페이지;
/** 현재 페이지 주변의 페이지를 배열에 추가 */
if ( $paged >= 3 ) {
$links[] = $paged - 1;
$links[] = $페이지 - 2;
}
if ( ( $paged + 2 ) <= $max ) {
$links[] = $페이지 + 2;
$links[] = $페이지 + 1;
}
echo '<div class="navigation"><ul>' . "\N";
/** 이전 포스트 링크 */
if ( get_previous_posts_link() )
printf( '<li>%s</li>' . "\n", get_previous_posts_link() );
/** 첫 페이지에 대한 링크, 필요한 경우 줄임표 추가 */
if ( ! in_array( 1, $links ) ) {
$class = 1 == $paged ? ' 클래스="활성"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
if ( ! in_array( 2, $links ) )
echo '<li>…</li>';
}
/** 현재 페이지에 대한 링크 및 필요한 경우 양방향으로 2페이지 */
정렬( $links );
foreach ( (배열) $links as $link ) {
$class = $paged == $link ? ' 클래스="활성"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
}
/** 마지막 페이지에 대한 링크, 필요한 경우 줄임표 추가 */
if ( ! in_array( $max, $links ) ) {
if ( ! in_array( $max - 1, $links ) )
에코 '<li>…</li>' . "\N";
$class = $paged == $max ? ' 클래스="활성"' : '';
printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
}
/** 다음 포스트 링크 */
if ( get_next_posts_link() )
printf( '<li>%s</li>' . "\n", get_next_posts_link() );
에코 '</ul></div>' . "\N";
}
#2단계: 위의 함수에 대한 이 호출을 사용하여 템플릿에 추가
njengah_numeric_pagination();
#3단계: 테마 스타일에 맞게 페이지 매김 스타일 지정
/** 페이지 매김 스타일을 지정하는 CSS 클래스*/
.내비게이션 리 {
}
.내비게이션 리{
}
#3) WordPress Ajax 페이지 매김 예제
WordPress에서 Ajax 페이지 매김 코드를 찾고 있다면 GitHub에서 매우 잘 작동하는 예제를 찾았고 코드는 플러그인 형식입니다. 나는 그것을 우리 튜토리얼의 플러그인으로 만들기 위해 그것을 사용자 정의했고 코드를 파일에 복사하고 zip 형식으로 저장하고 플러그인으로 설치할 수 있습니다. 다음은 WordPress Ajax 페이지 매김 예제 코드입니다.

<?php
/**
* 플러그인 이름: Njengah Ajax 페이지네이션
* 플러그인 URI: https://njengah.com
* 설명: WordPress Ajax 페이지 매김 예제.
* 버전: 1.0.0
* 저자: 조 은젠가
* 저자 URI: https://njengah.com
* 라이선스: GPL-2.0+
* 라이선스 URI: http://www.gnu.org/licenses/gpl-2.0.txt
* 텍스트 도메인: cs-pagination
* 도메인 경로: /languages
*/
// 크레딧 - 캐스퍼 슐츠
클래스 Njengah_Ajax_Pagination {
보호된 $num_per_page;
공개 함수 __construct() {
$this->num_per_page = 5;
$this->초기화();
}
보호된 함수 init() {
add_action( '초기화', array( $this, 'add_rewrite_rule' ) );
add_filter( 'query_vars', array( $this, 'add_query_vars' ) );
add_action( 'parse_request', array( $this, 'parse_request' ) );
}
/**
* 들어오는 요청을 구문 분석하고 결과를 생성합니다.
*/
함수 parse_request( $wp ) {
if ( array_key_exists( 'cs-page', $wp->query_vars ) ) {
$page = isset ( $wp->query_vars['cs-page'] ) ? $wp->query_vars['cs-page'] : 1;
$args = 배열(
'post_type' => '게시물',
'post_per_page' => $this->num_per_page,
'페이징' => $페이지,
);
$query = 새로운 WP_Query( $args );
// 찾은 총 게시물 수를 알아야 합니다.
$values['total'] = $query->found_posts;
// 그리고 페이지당.
$values['per_page'] = $this->num_per_page;
$values['게시물'] = array();
// 필요한 데이터만 보내도록 합니다.
동안 ( $query->have_posts() ) {
$query->the_post();
$values['게시물'][] = 배열(
'ID' => get_the_ID(),
'제목' => get_the_title(),
);
}
wp_reset_postdata();
wp_send_json( $값 );
}
}
/**
* 필요한 쿼리 인수를 추가합니다.
*/
함수 add_query_vars( $query_vars ) {
$query_vars[] = 'cs-페이지';
$query_vars 반환;
}
/**
* admin-ajax 사용을 피할 수 있도록 사용자 지정 페이지 매김에 대한 재작성 규칙을 추가합니다.
*/
함수 add_rewrite_rule() {
add_rewrite_rule( '^cs-paginate/([0-9]+)/?', 'index.php?cs-page=$matches[1]', '상단' );
}
/**
* 플러시 재작성 규칙.
*/
정적 함수 설치() {
flush_rewrite_rules();
}
}
함수 njengah_ajax_pagination_init() {
새로운 Njengah_Ajax_Pagination();
}
njengah_ajax_pagination_init();
// 활성화 시 재작성 규칙을 플러시해야 합니다.
register_activation_hook( __FILE__, array( 'Njengah_Ajax_Pagination', '설치' ) );
#4) 사용자 정의 게시물 유형에 대한 WordPress 페이지 매김
사용자 정의 게시물 유형 페이지 매김의 경우 WP_query를 사용하여 사용자 정의 게시물 유형을 확인하고 인수에서 post_type에 사용자 정의 게시물 유형을 전달한 다음 페이지 매김 코드를 사용하여 사용자 정의 게시물 유형에 대한 WordPress 페이지 매김을 생성해야 합니다.
다음은 functions.php에 추가하고 post_type을 각각의 사용자 정의 포스트 유형 슬러그로 교체해야 하는 코드입니다:
<?php
/**
* 사용자 정의 게시물 유형에 대한 WordPress 페이지 매김
*/
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( '페이징' ) : 1;
$args = 배열(
'post_type' => 'custom_post_type_name',
'posts_per_page' => 10,
'페이징' => $페이지
);
$ 루프 = 새로운 WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
// 사용자 정의 게시물 유형 콘텐츠
그 동안;
?>
<nav class="페이지 매김">
<?php
$ 큰 = 999999999;
echo paginate_links( 배열(
'기본' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'형식' => '?paged=%#%',
'현재' => 최대( 1, get_query_var('페이징') ),
'총' => $loop->max_num_pages,
'prev_text' => '«',
'next_text' => '»'
) );
?>
</nav>
<?php wp_reset_postdata(); ?>#5 사용자 정의 쿼리 페이지 매김 WordPress
WordPress의 사용자 지정 쿼리 페이지 매김 코드는 WP_query를 사용하여 페이지 매김하려는 특정 게시물을 가져온 다음 쿼리 결과를 페이지 매김 코드와 결합하여 선택한 특정 게시물에 페이지 매김을 적용합니다. 다음은 WordPress의 사용자 지정 쿼리 페이지 매김의 예입니다.
<?php
//사용자 정의 쿼리
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( '페이징' ) ) : 1;
$args = 배열(
'posts_per_page' => 5,
'category_name' => '갤러리',
'페이징' => $페이지,
);
$the_query = 새로운 WP_Query( $args );
?>
<!-- 루프 등. -->
<?php
// 페이지 매김
$ 큰 = 999999999; // 있을 수 없는 정수가 필요합니다.
echo paginate_links( 배열(
'베이스' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'형식' => '?paged=%#%',
'현재' => 최대( 1, get_query_var('페이징') ),
'총' => $the_query->max_num_pages
) );결론
이 게시물에서는 다양한 유형의 WordPress 페이지 매김을 강조하고 각 경우에 사용할 특정 페이지 매김 코드를 공유했습니다. WordPress의 이 페이지 매김 코드는 기존 테마나 플러그인에 추가할 수 있으며 WordPress에 독립 실행형 플러그인으로 추가할 수도 있습니다.
