WordPress 페이지 나누기 기능

5200 단어
WordPress는 기본적으로 페이지를 넘기는 기능이 약해서 한 페이지를 넘기면 손이 저리기 때문에 wwp-pagenavi 페이지를 넘기는 플러그인과 유사하다. 거의 WordPress 블로그에 꼭 필요한 플러그인이자 보급률이 높은 플러그인이다.
인터넷에서wp-pagenavi 플러그인을WordPress 테마에 통합하는 강좌가 있지만 wp-pagenavi 플러그인 함수 코드가 질질 끌려서 플러그인을 변형해서 사용할 뿐 wp-pagenavi 플러그인에서 벗어나지 않습니다.
다음은 두 가지 방법이 있는데 모두 경량급 함수로 페이지 플러그인 기능을 실현하는 것이다.
방법 1 (페이지 표시 수량을 사용자 정의할 수 없음)
WordPress는 이미 자체적으로Pagenavi 기능을 지원하기 때문에 우선 functions.php 파일에 다음 코드를 넣어야 한다
/*@    */
function native_pagenavi(){
global $wp_query, $wp_rewrite;
$wp_query->query_vars["paged"] > 1 ? $current = $wp_query->query_vars["paged"] : $current = 1;
$pagination = array(
"base" => @add_query_arg("page","%#%"),
"format" => "",
"total" => $wp_query->max_num_pages,
"current" => $current,
"prev_text" => "« ",
"next_text" => " »"
);
if( $wp_rewrite->using_permalinks() )
$pagination["base"] = user_trailingslashit( trailingslashit( remove_query_arg("s",get_pagenum_link(1) ) ) . "page/%#%/", "paged");
if( !empty($wp_query->query_vars["s"]) )
$pagination["add_args"] = array("s"=>get_query_var("s"));
echo paginate_links($pagination);
}

호출
호출이 필요한 위치에 다음 코드를 삽입하면 Pagenavi 기능을 수행할 수 있습니다.
<div class="pagenav"><?php native_pagenavi();?></div>

분석하다.
'base'파라미터는 페이지 링크를 만드는 참고 링크를 제공하는 데 사용됩니다'format'매개 변수는 페이지 번호로 바꾸는 데 사용됩니다 'total'매개 변수는 설정 페이지의 총 수입니다.
'current'매개 변수는 현재 페이지 번호를 설정하는 데 사용되며, 모두 정수여야 합니다.이 매개 변수들은 우리가 사용할 때 반드시 제공해야 한다.
‘show_all'파라미터가true로 설정되면 모든 페이지를 표시합니다. 기본적으로false로 설정됩니다 'end'를 통해서...크기 및 midsize '두 인자는 페이지 번호의 표시 규칙을 제어합니다.end_크기 '파라미터는 시작과 끝의 양쪽에 몇 개의 숫자를 표시하는지 제어하는 데 사용되며 기본값은 1입니다.mid_크기 '파라미터는 현재 페이지의 숫자 양쪽에 몇 개의 숫자를 표시하는지 표시하는 데 사용되며, 현재 페이지를 포함하지 않습니다.
‘prev_next '이 매개 변수는 이전 페이지와 다음 페이지의 페이지 번호 링크를 표시할 지 설정하는 데 사용됩니다. 기본값은true입니다. 그리고' prevtext'및'nexttext '두 인자는 이전 페이지와 다음 페이지의 텍스트를 제어합니다.
공식 참조
CSS 스키마 1
.pagenav{
clear:both;
padding-top:9px;
}
.pagenav span,.pagenav a{
font-size:14px;
margin: 2px 6px 2px 0;
background:#fff;
border:1px solid #e5e5e5;
color:#787878;
padding:3px 8px;
text-decoration:none;
}
.pagenav a:hover{
background: #8391A7;
border:1px solid #fff;
color:#fff;
}
.pagenav .current{
border:1px solid #8d8d8d;
color:#393939
}

CSS 스키마 2
/*@pagenav*/
.pagenav{
text-align:center;
padding:1em;
clear:both;
}
.page-numbers{
border-bottom:5px solid #ccc;
padding:5px 8px 4px;
margin:0 5px;
}
.page-numbers:hover,.pagenav .current{
color:#000;
border-bottom:5px solid #000;
}

방법2(페이지 표시 수량을 사용자 정의할 수 있음)
functions.php에 추가
function pagination($query_string){
global $posts_per_page, $paged;
$my_query = new WP_Query($query_string ."&posts_per_page=-1");
$total_posts = $my_query->post_count;
if(empty($paged))$paged = 1;
$prev = $paged - 1;
$next = $paged + 1;
$range = 2; // only edit this if you want to show more page-links
$showitems = ($range * 2)+1;$pages = ceil($total_posts/$posts_per_page);
if(1 != $pages){
echo "<div class="pagination">";
echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href="".get_pagenum_link(1)."">  </a>":"";
echo ($paged > 1 && $showitems < $pages)? "<a href="".get_pagenum_link($prev)."">   </a>":"";for ($i=1; $i <= $pages; $i++){
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){
echo ($paged == $i)? "<span class="current">".$i."</span>":"<a href="".get_pagenum_link($i)."" class="inactive" >".$i."</a>";
}
}echo ($paged < $pages && $showitems < $pages) ? "<a href="".get_pagenum_link($next)."">   </a>" :"";
echo ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) ? "<a href="".get_pagenum_link($pages)."">  </a>":"";
echo "</div>
"; } }

페이지 나누기를 호출해야 하는 위치에서 다음 코드를 사용하십시오
<?php pagination($query_string); ?>

CSS 스키마
.pagination{
line-height:23px;
}
.pagination span, .pagination a{
font-size:12px;
margin: 2px 6px 2px 0;
background:#fff;
border:1px solid #e5e5e5;
color:#787878;
padding:2px 5px 2px 5px;
text-decoration:none;
}
.pagination a:hover{
background: #8391A7;
border:1px solid #fff;
color:#fff;
}
.pagination .current{
background: #fff;
border:1px solid #8d8d8d;
color:#393939;
font-size:12px;
padding:2px 5px 2px 5px;
}

주제에 따라 CSS를 조정하면 됩니다.
전재를 환영하지만, 원문 주소를 보존하십시오http://www.sjyhome.com/wordpress/pagenavi.html

좋은 웹페이지 즐겨찾기