각 카테고리별로 노출되는 포스트 갯수 설정하기

워드 프레스는 [대시보드] → [설정] → [읽기]에서 '페이지당 보여줄 글의 수'에 입력한 숫자만큼 카테고리나 첫 페이지에 보여지게 된다.

그러나 카테고리에 따라 갯수를 다르게 보여주고 싶을 때가 있다.

다음과 같이 예를 들어 A라는 카테고리의 경우는 10개, B라는 카테고리의 경우는 20개, C라는 카테고리의 경우는 30개를 보여주고 싶다면 일단 가장 적게 보여줄 갯수를  [대시보드] → [설정] → [읽기]에서 '페이지당 보여줄 글의 수'에 입력해 둔다.

 

그런 후에 나머지 B 카테고리, C 카테고리의 갯수를 category.php을 편집한다.
문서 내부에서 아래 코드처럼 반복문이 실행되는 부분이 있다.

<?php
     // Start the Loop.
     while ( have_posts() ) : the_post();
     get_template_part( 'content', 'featured-post-blog' );
     endwhile;
     twentyfourteen_paging_nav();
     else :
     get_template_part( 'content', 'none' );
     endif;
?>

찾았다면 그 위와 아래에 코드를 추가한다. (아래 참고)

<?php
if(has_category(2)){
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
     $args=array(
     'cat'=>2, //카테고리 A의 id가 2
     'paged'=>$paged,
     'posts_per_page'=>20 // 보여줄 갯수
     );
     query_posts($args);
}else if(has_category(3)){
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
     $args=array(
     'cat'=>3, //카테고리 B의 id가 3
     'paged'=>$paged,
     'posts_per_page'=>30 //보여줄 갯수
     );
     query_posts($args);
     }
?>
<?php
     // 위에 코드 추가
     // Start the Loop.
     while ( have_posts() ) : the_post();
     get_template_part( 'content', 'featured-post-blog' );
     endwhile;
     twentyfourteen_paging_nav();
     else :
     get_template_part( 'content', 'none' );
     endif;
     //이 아래에도 코드를 추가
?>
<?php wp_reset_query(); //이걸 넣어줘서 마무리해준다 ?>

 조건문에 보면 has_category(2)라고 나오는데 이 것이 바로 B와 C 카테고리 id를 구분해서 넣으면 된다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

2 댓글
Oldest
Newest
Inline Feedbacks
View all comments
avada. kr
avada. kr
10 years ago

좋으글 잘 봤습니다. ^^

질문 드릴것이 있는데요
$paged 변수 비교문 넣어주는 이유는 뭔가요 ?

mynain
mynain
10 years ago
Reply to  avada. kr

http://codex.wordpress.org/Function_Reference/get_query_var

여기 레퍼런스를 참고했어요.
paged는 페이지를 나누기 위한 변수인거 같습니다.
더 자세한 내용을 알게되면 또 댓글 남겨드릴께요.

TOP