예제가 포함된 5 WordPress 페이지 매김 코드 조각 [단순에서 고급]

게시 됨: 2020-02-03

WordPress 예제의 페이지 매김 코드 특정 예제와 함께 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' => '&laquo;',
          'next_text' => '&raquo;'
     ) );
?>
</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에 독립 실행형 플러그인으로 추가할 수도 있습니다.