워드프레스 메뉴에 카테고리, 태그 글 개수 표시하는 방법

Last Updated: 2024년 06월 27일 6개 댓글

워드프레스 사이트의 메뉴에서 카테고리 글 개수를 표시하고 싶은 경우가 있을 수 있습니다. 내비게이션 메뉴에 추가된 카테고리 항목에 글 개수 (포스트 개수)를 표시하려는 경우 다음 글에서 소개하는 함수를 사용할 수 있습니다.

또한, 사이드바에 카테고리 목록을 표시하고 각 카테고리 항목에 글 개수를 표시할 수 있습니다. 카테고리 리스트를 드롭다운 메뉴로 표시하도록 설정할 수도 있습니다.

[ 이 글은 2024년 6월 27일에 최종 업데이트되었습니다. ]

워드프레스 메뉴에 카테고리 글 개수 표시하는 방법

워드프레스에서 카테고리를 메뉴에 추가하려면 워드프레스 알림판 » 디자인 » 메뉴 (워드프레스 버전에 따라 외모 » 메뉴)에서 원하는 메뉴를 선택한 다음 왼쪽 패널에서 "카테고리"를 눌러서 원하는 카테고리 항목을 오른쪽으로 끌어다 놓으면 됩니다.

워드프레스에서 카테고리 항목 추가하기

이렇게 카테고리 항목을 메뉴에 추가하면 메뉴에 카테고리 이름이 추가됩니다. 하지만 개별 카테고리 내의 글 개수는 표시되지 않습니다.

워드프레스 메뉴에서 카테고리 글 개수 표시

위의 그림에서와 같이 카테고리 항목 옆에 글 개수가 표시되도록 하고 싶은 경우 다음과 같은 코드를 사용 중인 워드프레스 테마의 함수 파일(functions.php)에 추가하면 됩니다(참고로 위에서 "CSS"는 카테고리가 아니기 때문에 글 개수가 표시되지 않은 것입니다).

차일드 테마를 만들어서 차일드 테마 내의 함수 파일에 아래 함수를 추가하시기 바랍니다. 차일드 테마(자식 테마, 하위 테마)가 아닌 부모 테마(본래 테마) 내의 함수 파일에 코드를 추가할 경우, 추후 테마 업데이트 시 추가되거나 수정된 테마 파일이 초기화됩니다.

// Display post count for categories in WordPress menu navigations
// 워드프레스 메뉴에서 카테고리 항목에 글 개수 표시하기

add_filter('the_title', 'wpse165333_the_title', 10, 2);
function wpse165333_the_title($title, $post_ID)
{
if( 'nav_menu_item' == get_post_type($post_ID) )
{
if( 'taxonomy' == get_post_meta($post_ID, '_menu_item_type', true) && 'category' == get_post_meta($post_ID, '_menu_item_object', true) )
{
$category = get_category( get_post_meta($post_ID, '_menu_item_object_id', true) );
$title .= sprintf(' (%d)', $category->count);
}
}
return $title;
}

// Source: stackexchange

FTP에 접속하여 테마의 함수 파일에 코드를 추가하세요.

get_post_meta는 포트스의 포스트 메타 필드를 가져오는 함수입니다(여기 참조), get_category여기를 참고해보시기 바랍니다.

참고로 Custom Taxonomy의 경우 테스트는 해보지 않았습니다만, get_term_by를 활용하면 가능할 것 같습니다(참고).

이 글에 소개된 코드 스니펫은 5년도 더 지났지만 최신 워드프레스 버전(아바다 테마와 이 블로그에 현재 설치되어 있는 GeneratePress 테마 사용)에서 테스트해보니 잘 작동하는 것을 확인했습니다(2024년 6월 기준).

워드프레스 메뉴에 카테고리와 태그 항목의 글 개수 표시하는 방법

상기 코드는 워드프레스 메뉴에서 카테고리 항목에 글 개수를 표시합니다. 카테고리뿐만 아니라 태그 항목에도 글 개수를 표시하는 방법에 대해 궁금해하시는 분이 계셔서 상기 코드를 조금 수정해보았습니다. 다음 코드를 차일드 테마의 함수 파일에 추가하면 카테고리뿐만 아니라 태그 항목에도 글 개수가 표시될 것입니다.

// Display Post Counts for Category and Tag Menu Items in WordPress

add_filter('the_title', 'custom_the_title', 10, 2);
function custom_the_title($title, $post_ID)
{
    if( 'nav_menu_item' == get_post_type($post_ID) )
    {
        $menu_item_type = get_post_meta($post_ID, '_menu_item_type', true);
        $menu_item_object = get_post_meta($post_ID, '_menu_item_object', true);
        
        if( 'taxonomy' == $menu_item_type )
        {
            if( 'category' == $menu_item_object )
            {
                $category = get_category( get_post_meta($post_ID, '_menu_item_object_id', true) );
                $title .= sprintf(' (%d)', $category->count);
            }
            elseif( 'post_tag' == $menu_item_object )
            {
                $tag = get_tag( get_post_meta($post_ID, '_menu_item_object_id', true) );
                $title .= sprintf(' (%d)', $tag->count);
            }
        }
    }
    return $title;
}

실제로 테스트해보니 잘 작동하였습니다.

메뉴에 카테고리와 태그 항목 글개수 표시하기

위의 그림에서 카테고리와 태그 항목에 글 개수가 표시되는 것을 확인할 수 있습니다. 다만, "보안"은 태그 항목이지만 글 개수가 표시되지 않고 있습니다. 이유는 모르겠지만, 디비에서 약간 꼬인 것 같기도 합니다. 특수한 경우를 제외하고는 잘 작동할 것입니다.

사이드바의 카테고리 목록에 포스트 개수 표시하기

사이드바에 카테고리 리스트를 표시하고 각 카테고리 항목에 글 개수를 표시하려는 경우 워드프레스 관리자 페이지 » 디자인 » 위젯에서 카테고리 위젯을 사이드바에 추가하고 "표시할 글 개수" 체크박스를 체크하면 카테고리에 글 개수가 표시됩니다.

워드프레스 5.8 버전에서 블록 위젯이 도입되었습니다. 블록 위젯을 사용하는 경우 카테고리 목록 블록 설정에서 표시할 글 개수를 체크하면 카테고리 글 개수가 표시됩니다.

워드프레스 카테고리 목록에 글 개수 표시하기

계층구조 보이기를 체크하면 위의 그림과 같이 계층 구조로 표시됩니다. 또한, 드롭다운으로 표시를 선택하면 카테고리 목록이 드롭다운 메뉴로 표시됩니다.

클래식 위젯(고전 위젯)을 사용하는 경우 카테고리 위젯을 사이드바에 추가하고 "표시할 글 개수"를 체크할 수 있습니다.

워드프레스 사이드바의 카테고리 글 개수 표시

그러면 다음과 같이 사이드바에 카테고리 목록이 표시되고 개별 카테고리 항목에 포스트 개수가 나타납니다.

워드프레스 사이드바 카테고리 리스트 추가 - 카테고리에 포함된 글 개수 표시

스타일을 조정하려면 CSS를 사용할 수 있습니다. 기본적인 CSS는 그리 어렵지 않고 배우는 데 시간이 많이 소요되지 않습니다.😄

워드프레스 최신 버전에서는 블록 위젯이 사용됩니다. 예전 방식의 위젯(고전 위젯)을 원하는 경우 클래식 위젯 플러그인을 설치할 수 있습니다.

참고:

워드크래커의 아바타 이미지

워드크래커

전문 영한번역가. 워드프레스 애호가. 네이버 카페 「워프사」 운영.

6 개 댓글

Leave a Comment

  1. 와 신기하네요~ 다음에 필요할지도 몰라서 끌어가기 해갈께요~
    좋은 포스팅 감사합니다!
    혹시나 임의로 제작한 thumbnail이나, 끌어가기 글이 거부감이 드시면 언제든지 내리겠습니다. ㅠ

    응답
카카오톡 상담 카톡 서비스 상담