카테고리별 포스트 목록 보여주기

카테고리(Category)와 태그(Tag)는 워드프레스에서 콘텐츠를 분류할 때 사용하는 기본 텍소노미(taxonomy) 입니다. 특히 카테고리는 다양한 콘텐츠들을 계층형으로 쉽게 분류할 수 있고 메뉴와도 엮을 수 있어서 흔히 사용되죠.

워드프레스로 콘텐츠를 만들다 보면 종종 특정 카테고리 내 글들에 대한 목록만 모아서 어딘가에 표시할 경우가 종종 생깁니다. 예를 들면 이런 경우죠.

  • 특정 포스트 하단에 그 포스트가 속한 카테고리의 다른 글들의 목록을 보여줄 때
  • 사이드바나 푸터 영역에 특정 카테고리의 최신글 목록을 보여줄 때
  • 페이지 내에서 특정 카테고리에 속한 글들을 리스팅할 때

그 밖에도 여러 경우가 있을 수 있겠죠. 이럴 경우엔 주로 플러그인을 사용해서 간단하게 해결합니다.

페이지에 포스트 목록 추가하기

그런데 가끔은 전체 카테고리(또는 여러 개의 카테고리)에서 각 카테고리별로 포스트 목록을 보여줘야 할 경우도 생깁니다. 예를 들면 특정 페이지 내에서 카테고리별 포스트 목록을 보여주는 경우와 같은.

이럴 땐 어떻게 할까요?

Display Posts Shortcode 플러그인

네, 맞습니다. 플러그인으로 해결하면 되죠. 조금만 검색해 보면 맘에 꼭 드는 플러그인을 어렵지 않게 찾아 추가할 수 있을 것입니다. 제가 알기로는 Display Posts Shortcode 플러그인이 그런 기능을 제공합니다.


그런데 혹시라도 플러그인이 없다면요? 아니면, 어렵게 찾은 플러그인이 내 마음에 쏙 들지 않는다면요?

그럴 땐 다른 방법을 찾아야 겠죠.

페이지 템플릿 만들기

우선 페이지 템플릿을 하나 만듭니다. 그런 다음 그 템플릿 파일 속에 다음과 같이 카테고리별로 포스트 목록을 추가하는 코드를 입력하면 되겠죠.

<?php
    $cats = get_categories(); 
    foreach ( $cats as $cat ) {
        echo '<h2>' . $cat->name . '</h2> <ul>';
        $args = array( 'category' => $cat->term_id, 'posts_per_page' => -1 );
        $cat_posts = get_posts( $args );
        foreach ( $cat_posts as $post ) {
            echo '<li><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></li>';
        }
        echo '</ul>';
    }
    wp_reset_postdata();
?>

페이지 템플릿 만드는 방법은 이미 다른 글에서 소개한 적이 있으니 참고 바랍니다.

커스텀 페이지를 만드는 3+1가지 방법

Custom Content Shortcode

위와 같이 직접 페이지 템플릿을 만드는 방법이 조금 불편하다면 좀 더 편리한 방법이 있습니다. 바로 Custom Content Shortcode 플러그인을 사용하면 됩니다.


이 플러그인은, 간단히 말해 위에서 직접 코드로 입력한 것을 간단하게 숏코드(shortcode)로 처리할 수 있게 해주는 아주 유용한 플러그인입니다.

그럼 앞서 소개한 Display Posts Shortcode 플러그인과 뭐가 다르냐구요? Display Posts Shortcode 플러그인 이 하나의 기능만 제공하는 플러그인이라면, 이 Custom Content Shortcode 플러그인은 콘텐츠 조작과 관련된 거의 모든 작업들을 숏코드 방식으로 처리할 수 있게끔 해주는 범용성이 높은 플러그인이라는 점이 차이죠!

사용법은 간단합니다.

우선 포스트 목록을 보여줄 페이지를 하나 만든 다음, 그 페이지 본문 내에 다음과 같이 숏코드를 입력하면 끝입니다.

[for each=category]
<h2>[each name]</h2>
<ul>
[loop type=post]
<li>[field title-link]</li>
[/loop]
</ul>
[/for]

그러면 앞에서 우리가 직접 PHP 코드로 입력한 것과 똑같은 결과가 출력될 것입니다.

간단하죠?

사실 이 글은 실은 Custom Content Shortcode 플러그인을 소개하기 위한 글이며, Custom Content Shortcode 플러그인의 용도는 이것 말고도 너무 다양하기 때문에 일일이 소개할 수 없을 정도입니다. Custom Content Shortcode 플러그인의 자세한 사용법은 플러그인을 설치하면 함께 제공되는 도움말 페이지에 잘 나와 있으니 참고하세요! 🙂

0 thoughts on “카테고리별 포스트 목록 보여주기”