메뉴 닫기

워드프레스 카테고리 순서 변경, PHP 코드, 숏코드 생성

워드프레스 기본 카테고리 세팅은 뭔가 좋은 듯하면서 굉장히 불편하다. 특히 티스토리 라던지 다른 플랫폼을 이용한 사람들에게는 더욱 심한데, 표준형과 드랍다운 형식을 선택할 수 있고, 카테고리의 글 개수를 표시하거나 계층도(하위 카테고리가 오른쪽으로 한 계단 쏠려있는, 대댓글 같은 표현방식)를 표현하는 기능이 내장되어 있는 건 마음에 든다. 하지만 카테고리 순서를 임의로 바꿀 수 없다는 점과, 사이트의 아무 곳에나 붙여넣을 수 없다는 점이 치명적이다.

    워드프레스 카테고리 순서 바꾸는 법

특히 카테고리 순서 같은 경우는, 여러 가지 이유들로 인해 반드시 필요한 기능이기 때문에 꼭 구현해야만 한다. 여러 가지 방법을 찾아봤지만 결국 가장 깔끔하고 안정적이며 속도에 크게 영향을 미치지 않는 방법은 "Category Order and Taxonomy Terms Order" 플러그인을 사용하는 것이다.

워드프레스 관리자 화면에서 "플러그인" > "새로 추가" > "키워드" 란에 "Category Order and Taxonomy Terms Order" 를 검색해 설치한 후 활성화 시키면 된다.

그럼 워드프레스 관리자 화면 "글" 카테고리 하단에 "Taxonomy Order" 라는 메뉴가 생성되는데, 클릭해 들어가면 정말 직관적인 메뉴와 함께 클릭 드래그로 카테고리 순서를 바꿀 수 있다. 원하는대로 카테고리 순서를 드래그한 뒤 "Update" 버튼을 누르면 끝, 바로 적용되어 작동하는 모습을 볼 수 있다.

    워드프레스 카테고리 PHP코드

그 다음 문제인 사이트에 아무 곳에나 붙여넣을 수 없다는 단점은 숏코드를 생성해 해결할 수 있다.

카테고리 메뉴는 PHP를 통해 불러올 수 있고, 이 PHP코드를 숏코드로 변환시켜 사용하면 된다. 카테고리의 기본 PHP 코드는 아래와 같다.

<?php the_widget('WP_Widget_Categories'); ?>

여기에 카테고리 옆 글 개수 카운트를 달고 싶다면 "count" 속성을 추가하면 된다. 변수값 0은 사용 안 함, 1은 사용함이다.

<?php the_widget('WP_Widget_Categories', 'count=1'); ?>

그 외에도 드롭다운을 표현하는 "dropdown" 속성과 계층도를 표현하는 "hierarchical" 속성이 있다. 모두 표현하려면 이런 식으로 적으면 된다.

<?php the_widget('WP_Widget_Categories', 'count=1&dropdown=1&hierarchical=1'); ?>

이 중 입맛에 맞게 골라 쓰면 된다. 원하는 페이지 어느 곳이던 그대로 삽입하면 된다.

    워드프레스 카테고리 숏코드 만들기

다만 더욱 편하게 불러오거나, PHP가 구현 불가능한 페이지에선 숏코드를 생성해 불러올 수 있다. 카테고리 PHP를 숏코드 화 하는 방법은 "functions.php" 파일에 아래의 코드를 집어넣으면 된다.

add_shortcode( 'shot_code_category', 'Category_Widget' );
function Category_Widget(){
    $widget = "WP_Widget_Categories";
    $instance = array(
    );
 
    ob_start();
    the_widget( $widget, $instance);
    $return_data = ob_get_clean();    
    return $return_data;
}

이게 기본형이고, 이 숏코드에도 위에서처럼 카운트, 계층도, 드롭다운 등을 표현하려면 아래처럼 변수를 집어넣으면 된다.

add_shortcode( 'shot_code_category', 'Category_Widget' );
function Category_Widget(){
    $widget = "WP_Widget_Categories";
    $instance = array(
    'count'    => '1',
    'hierarchical'     => '1',
    'dropdown'     => '1'
    );
 
    ob_start();
    the_widget( $widget, $instance);
    $return_data = ob_get_clean();    
    return $return_data;
}

역시 입맛대로 선택하고, 원치 않는 속성은 지워버리면 된다.

이제 "add_shortcode" 바로 뒤에 지정한 이름이 숏코드 네임이 된다. 예시대로 라면 [shot_code_category] 라고 입력하면 바로 숏코드로 사용할 수 있다.

2 Comments

  1. 김도훈

    안녕하세요..?
    본 포스팅 글을 보고 엄청 많은 도움이되고있습니다.

    몇가지 문제가 있어 문의드립니다.
    워드프리스 카테고리 클릭시 빈화면으로 넘어갑니다만.
    해당카테고리에는 글 카운팅도 되고있는데요..
    혹 이런 문제는 어떻게 해결해야할까요..??

    https://issue-in.com 입니다..

    • 개꿀몬 GKKmon.com

      제가 관리자 입장에서 알 수 있는 정보가 없어서 무슨 상황인지 파악할 수가 없습니다.
      다만 짐작 가는 의심 사항이나 시도해볼 수 있는 솔루션들을 말해드리겠습니다.

      -사이트를 백업해두었다면 백업 상태로 되돌아가십시오.
      -오류가 생기기 전과 후 사이에 설치한 플러그인, 테마 등이 있다면 제거하거나 이전 상태로 돌아가십시오.
      -카테고리 이동 시 타이틀 명조차 뜨지 않고, 관리자 도구로도 아무런 HTML도 뜨지 않는 거로 봐서 php 단계에서부터 잘못되었을 수 있습니다.
      관리자 페이지 → 테마 디자인 → Theme Editor 식으로 테마 에디터로 접속, 혹은 파일질라 등의 php 관리 시스템으로 접속해 archive.php 등의 php를 잘못 건드린 것이 없는지 확인하십시오. 잘못 건드렸다면 되돌리십시오.
      -‘issue-in.com/archives/category/trip’ 식으로 아카이브가 있고 또 카테고리가 있는데 의도하지 않은 경로라면, 어디서 오류가 난 것인지 찾아서 수정하십시오.
      -그 외에 의심 가는 사항이 있다면, 그 행동을 하기 전까지 복구해보십시오.

      사이트 자체는 돌아가고 있고 카운팅도 되는 것으로 보아, 뭔가 연결단계에서 오류가 생긴 것으로 의심됩니다.
      차분하게 복원단계를 순서대로 거쳐 가면 어떤 문제든 해결할 수 있습니다. 직접적인 도움이 되진 못하지만, 문제가 해결되길 바랍니다.

댓글 (정보 필수X)

Posted in All, 워드프레스 - Wordpress

이메일 구독 - Email Subs

최선을 다해 직접 만든 콘텐츠만 공유합니다.
We share the best content we have created.