워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인

|

개요

image 104
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 12

워드프레스의 꽃인 CPT입니다. 카테고리를 새로 만들어서 글을 쓴다고 생각하면 되는데요, 개수는 상관없이 여러개를 만들어서 활용할 수 있습니다.

만드는 방법은 두가지가 있는데요, 플러그인을 사용하는 방법과 코드를 입력하여 만드는 법 두가지가 있지만 개인적으로는 플러그인을 사용하는 방법을 추천드립니다.

플러그인 활용법

image 105
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 13

해당 플러그인을 사용하면 편하게 워드프레스에서 CPT를 추가하고, 수정할 수 있습니다. 또한 오픈소스로 이루어져있으며, 무료로 모든 기능을 사용할 수 있어 인기가 아주 많습니다. 현재는 공식적으로 100만개 이상의 워드프레스에 설치되어있습니다.

image 106
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 14

사용방법은 슬러그(무조건 영어만 가능) 와 라벨을 입력하여 생성버튼을 누르면 CPT를 바로 만들 수 있습니다. 간단한 영어로 되어있으나, 어렵게 느껴지는 분들은 크롬에서 번역기능을 활용하면 조금 더 편하게 사용할 수 있습니다.

탁소노미 생성

image 107
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 15

카테고리 분류(탁소노미 : Taxonomies) 기능도 지원합니다. 이 기능을 활용하면 글의 카테고리 지정과 태그 분류도 가능하니 추가로 생성작업이 필요합니다. 슬러그커스텀 포스트 타입과 중첩이 되면 안됩니다

코드1) 포스트 타입 생성하기

function rdg_register_post_type()
{

    // 생성
    $rading_labels = array(
        'name'                  => '라딩',
        'singular_name'         => '라딩',
        'menu_name'             => '라딩',
        'name_admin_bar'        => '라딩',
        'add_new'               => '새 라딩 추가',
        'add_new_item'          => '새 라딩을(를) 추가합니다',
        'new_item'              => '새 라딩',
        'edit_item'             => '라딩 수정',
        'view_item'             => '라딩 보기',
        'all_items'             => '라딩 목록',
        'search_items'          => '라딩 검색',
        'not_found'             => '현재 입력한 라딩이(가) 없습니다.',
        'not_found_in_trash'    => '휴지통에 라딩이(가) 없습니다.',
    );

    $message_list_args = array(
        'has_archive' => true,
        'public' => true,
        'labels' => $rading_labels,
        'menu_position' => 2,
        'menu_icon' => 'dashicons-admin-tools',
        'supports' => array('title', 'editor', 'comments', 'revisions'),
        'show_in_rest'       => true, // 구텐베르그 에디터처럼 변환
    );

}

add_action('init', 'rdg_register_post_type');

공식 홈페이지 메뉴얼을 단순하게 만든 코드입니다. 위의 코드를 복사하여 functions.php 에 붙여넣기 하거나 플러그인으로 만들어 활용하면 포스트 타입을 직접 만들 수 있습니다.

$rading_labels 은 겉으로 노출될 라벨지입니다. 여기서 번역을 추가하면 현지화에 더욱 유리하게 만들 수 있습니다.

$message_list_args 의 경우 menu_position 은 관리자 메뉴의 어느 위치에 띄울 것인지를 매깁니다.

image 108
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 16

만약 관리자 메뉴를 이보다 더 커스터마이징 하고 싶다면 Admin Menu Editor 플러그인(무료)를 사용하는 것을 추천드립니다. 기본적으로 무료이며, 유료 기능은 메뉴 선택을

image 109
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 17

menu_icon워드프레스 아이콘 리스트 에서 원하는 아이콘을 클릭하여 붙여넣기 하면 적용할 수 있습니다.

코드2) 탁소노미 생성하기

add_action('init', function () {
    register_taxonomy('custom_menu_taxonomy', 'custom_menu', [
        'label' => '라딩 카테고리',
        'show_admin_column' => true, // 관리자 페이지 노출여부
        'hierarchical' => false, // 활성화 하면 태그로 등록
    ]);
});

두번째로는 글을 분류할 카테고리를 만듭니다. 이름은 탁소노미(Taxonomy)라고 합니다. 이 기능을 활용하면 분류가 가능해집니다.

show_admin_columm 을 활성화 하면 관리자 페이지에 노출할 수 있습니다. 기본값은 false이기 때문에 활성화 되었는지 체크해보세요.

hierarchical는 false로 할 경우 태그처럼 활용할 수 있으며, true의 경우 일반 카테고리처럼 활용이 가능합니다.

글의 포스트 타입 변경하기

image 110
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 18

글을 쓰고 나서 보니 포스트 타입을 잘못 쓴 경우가 있습니다. 이 때는 Post Type Switcher 를 활용하면 해결할 수 있습니다.

메타 태그 추가하기

image 111
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 19

글에 추가적인 정보를 남기는 방법입니다. 이름은 메타 태그라고 합니다. 이 메타태그는 직접 추가하는 방법도 존재하지만, 번거롭다는 단점이 있어 Advanced Custom Field(이하 ACF) 를 활용할 수 있습니다.

// rdg_value 값을 가져옵니다.
get_post_meta( get_the_ID(), 'rdg_value', false );

// rdg_value 의 첫번째 값을 가져옵니다
get_post_meta( get_the_ID(), 'rdg_value', true );

추가적인 값들을 저장했다면 get_post_meta 를 활용한 방법으로 슬러그 값을 추적하여 원하는 값을 가져올 수 있습니다.

이 방법은 워드프레스 자체 기능이며, ACF 에서는 get_field() 와 the_field() 함수를 활용할 수 있습니다.

페이지네이션과 에러 해결방법

image 112
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 20

페이지 매김은 우리가 검색엔진이나 커뮤니티에서 자주 볼 수 있는데요, 다음 결과물을 볼 수 있게 나열한 버튼을 뜻합니다. 보통은 10개에서 20개 단위로 쪼개는 편입니다.

만드는 방법은 [라딩 메뉴얼] 참조해주세요

이전에 커스텀 포스트 타입을 활용하는 도중 페이지네이션 기능이 에러가 나는 상황이 있었습니다. 어떤 링크를 클릭해도 404 에러가 뜨면서 저를 당황하게 만들었는데요, 구글 리서치를 아무리 해도 방법이 나오지 않아 당황하던 도중 방법을 찾아 공유하려 합니다.

image 113
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 21

문제는 DB 상에서 에러가 발생하여 주소가 중복되어 생기는 문제입니다. 페이지 URL 슬러그를 다르게 하면 해결할 수 있습니다.

슬러그 정리

image 114
워드프레스 | 커스텀 포스트 타입, 탁소노미 플러그인 22

Add Title : 글쓰기 제목 aria-label

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

클릭하여 복사