구글맵 API 사용하기
워드프레스 사이트에 새로운 포스트 타입(post type)과 텍소노미(taxonomy)를 추가하기
2015-07-05
Explanation
어쩌면 워드프레스에 가장 기본은 포스트 타입이 아닐까 생각이 듭니다. 기본적으로 워드프레스에는 ‘post’와 ‘page’의 포스트 타입이 존재합니다. 하지만 여러 사이트를 개발하다 보면 두개의 포스트 타입으로는 부족한 경우가 많습니다. 실제로도 많은 테마와 플러그인에서 포스트 타입을 추가하여 다양한 기능으로 사용되어 집니다. 아래의 예를 통해 아주 간단히 ‘portfolio’라는 이름의 포스트타입을 추가해 보도록 하겠습니다.
그리고 추가한 포스트 타입에 ‘genre’라는 텍소노미를 추가해 보도록 하겠습니다.
(워드프레스에 기본으로 존재하는 포스트타입 ‘post’의 텍소노미는 ‘category’입니다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[functions.php] add_action('init', 'cgs_portfolio_init'); function cgs_portfolio_init(){ $labels = array ( 'name' => 'Portfolio', 'singular_name' => 'Portfolio', 'menu_name' => '포트폴리오', 'name_admin_bar' => 'Portfolio', 'add_new' => '포트폴리오 추가', 'add_new_item' => '새로운 포트폴리오 추가', 'new_item' => '새로운 포트폴리오', 'edit_item' => '포트폴리오 편집', 'view_item' => '포트폴리오 보기', 'all_items' => '모든 포트폴리오', 'search_items' => '포트폴리오 검색' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'portfolio' ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 7, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type( 'portfolio', $args ); } |
여기에서 ‘rewrite’의 ‘slug’는 해당 포스트 타입의 포스트 싱글 페이지의 URL 경로로 사용됩니다.
(예: https://cheolguso.com/portfolio/abcabc/)
그리고 ‘supports’는 해당 포스트 타입의 포스트의 편집 페이지에서 사용할 옵션?을 선택적으로 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[functions.php] add_action('init', 'cgs_taxonomies_init'); function cgs_taxonomies_init(){ $labels = array( 'name' => '분류', 'singular_name' => '분류', 'search_items' => '분류 검색', 'all_items' => 'All Genres', 'parent_item' => 'Parent Genre', 'parent_item_colon' => 'Parent Genre:', 'edit_item' => '분류 수정', 'update_item' => '분류 저장', 'add_new_item' => '분류 추가', 'new_item_name' => '새로운 분류 추가', 'menu_name' => '포트폴리오 분류', ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'genre' ), ); register_taxonomy( 'genre', array( 'portfolio' ), $args ); } |
‘register_taxonomy()’ 의 2번째 인자값으로 해당 분류가 적용될 포스트 타입의 이름을 적어주면 됩니다.