워드프레스 카테고리 아카이브(category archive)에 페이지 매기기 (pagination)

예전에 디자인해 둔 category archive 페이지를 문득 들어가 찬찬히 살펴보니 글목록 20개(설정 > 읽기 > 페이지당 보여줄 글의 수)만 나오고 그다음 글목록은 전혀 나오고 있지 않았다. 생각해 보니 아카이브는 카테고리의 모든 글 목록을 하나에 보여주고 싶었던 것 같다. 하지만 페이지당 보여줄 글의 수를 무한대로 설정할 수는 없기 때문에 부랴부랴 페이지를 매기는 방법을 사용하게 되었다.

페이지(prev, next)를 매기는 방법은 여러 사람에 의해 다양하게 제시되고 있기 때문에 웹 검색을 통해 본인이 사용하기 좋은 코드를 찾아보는 것이 좋아 보인다. 나의 경우 stackoverflow.com에 올라온 한 글을 참고하였고, 내비게이션 링크가 같은 라인에 표시되게끔 span 태그로 바꾸었다.

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 
'posts_per_page' => 1, 
'paged' => $paged, 
'post_type' => 'cpt_type'
);
$cpt_query = new WP_Query($args);
?>
루프 코드 위치
<nav>
<span><?php previous_posts_link( '&laquo; PREV', $cpt_query->max_num_pages) ?></span> 
<span><?php next_posts_link( 'NEXT &raquo;', $cpt_query->max_num_pages) ?></span>
</nav>
category archive pagination
위와 같은 페이지 기능이 추가됨


사실 처음에는 아래의 코드를 통째로 루프 코드 하단에 위치시켜 사용했었는데, 루프가 한 번 더 돌아가는 비효율성을 제외하면 문제없이 동작했다. 아직 php 편집에 익숙하지 않아 코드의 삽입 위치를 찾기 어려울 때, 혹은 테스트를 위해 일단 적용해 보는 용도로 괜찮아 보인다.

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 
'posts_per_page' => 1, 
'paged' => $paged, 
'post_type' => 'cpt_type'
);
$cpt_query = new WP_Query($args);
?>
<?php if ($cpt_query->have_posts()) : while ($cpt_query->have_posts()) : $cpt_query->the_post(); ?>
<?php endwhile; endif; ?>
<nav>
<span><?php previous_posts_link( '&laquo; PREV', $cpt_query->max_num_pages) ?></span> 
<span><?php next_posts_link( 'NEXT &raquo;', $cpt_query->max_num_pages) ?></span>
</nav>

카테고리의 다른 글

  1. 열심히 일하는 클라우드웨이즈 Bot Protection 보안 플러그인
  2. 네이버 서치 어드바이저 웹페이지 수집 요청이 또 말썽이다 (색인)
  3. 티스토리 본문 줄간격 바꾸기 (스킨 CSS 편집)
  4. 워드프레스 로컬 폰트(글꼴) 추가해 사용하기
  5. 네이버 서치어드바이저 티스토리 사이트 구조 문제와 색인 추이

4 thoughts on “워드프레스 카테고리 아카이브(category archive)에 페이지 매기기 (pagination)”

  1. 안 그래도 궁금했었는데 좋은 정보 감사해요~그리고 이 블로그 최신글 목록이 티스토리 블로그처럼 이쁘게 리스트 되어 있는데 어떻게 하신 건지 궁금합니다.

    응답
    • 조금이라도 도움받고 계시다면 감사할 따름입니다.

      현재는 글 목록을 만들어주는 display posts라는 플러그인을 활용하고 있습니다. 비슷한 플러그인으로는 list category posts라는 것도 있는데 개인적으로 이 list category posts가 좀 더 디자인하기 좋았던 것으로 기억합니다. 다만 이미 display posts 플러그인을 사용 중에 있었어서 플러그인을 늘리지 않으려고 사용 중입니다.

      위 플러그인들은 기본적으로 숏코드로 삽입하는 구조인데 사용 가능한 변수들은 플러그인 홈페이지에 예시와 함께 잘 나와 있습니다. 워드프레스에 이미 익숙하신 상황이라면 어렵지 않게 사용하실 수 있을 것 같습니다. 아마 언급한 두 플러그인 외에도 글목록을 만들어 주는 플러그인을 검색해 보시면 선택의 폭이 좀 더 있을 것으로 생각합니다.

      만약 이러한 방식으로 목록을 만드는 것에 어려움이 있다면 Ultimate Post List와 같이 좀 더 쉽고 예쁘게 리스트를 만들어 주는 플러그인도 있으니 참고하시면 될 것 같습니다(사용은 해 보지 않았습니다). 혹은 처음부터 글목록이 탑재되어 있는 테마를 선택하는 것도 방법이 될 수 있을 것 같습니다.

      응답
      • 상세한 답변 너무나 감사해요. 게으른 나무 블로그 게시물들은 모두 보기 좋게 정리가 되어 있어서 내용이 더 잘 전달되는 거 같아요. 올 한해도 수고 많으셨어요~~!!

        응답
        • 부족한 게 많은데도 좋게 잘 봐주셔서 감사합니다. 지켜봐 주시는 분이 계시다는 걸 상기하니 더 세심히 글을 써야겠다는 생각도 다시 하게 되네요. 댓글 감사합니다. 즐거운 연말연시 되세요 ^^

          응답

댓글 남기기