커스텀 포스트 타입은 페이지 구분을 할때 일반 페이지와 글 포스트로 구분 할 수 있는데, 아래와 같은 구분을 생각하고 작업하면 도움이 됩니다. 쉽게 말해 블로그글은 포스트, 일반 페이지는 페이지로 구분할 수 있습니다.
커스텀 포스트 유형
- 게시물 또는 페이지 역할을 할 수 있습니다.
- 카테고리, 태그 또는 사용자 지정 분류별로 구성
- 인덱스 페이지를 분리해서 사용하고 사용자 지정 템플릿을 가질 수 있습니다.
- 표준 기능을 모두 포함하거나 조합하거나 포함하지 않을 수 있습니다.
- WP_Query ()를 사용하여 사용자 정의 루프를 사용하여 사이트 어디에서나 표시 할 수 있습니다.
커스텀 페이지 등록 코드와 등록방법
커스텀 페이지 등록코드
register_post_type( string $post_type, array|string $args = array() )
1. function.php에 아래와 같은 코드를 등록합니다. function 이름을 만들어서 등록해주세요.
function your_descriptive_function_name() {
$args = array( 'public' => true, 'label' => 'Name' );
register_post_type( 'name', $args );
} add_action( 'init', 'your_descriptive_function_name' );
2. setting->permalinks를 다시한번 저장해주어야합니다.
3. 아래와 같이 등록된 CPT 카테고리가 보입니다.
4. 앞에서 만들어준 커스텀 페이지에 카테고리를 더하기 위해 inc 폴더안에 데이터 생성 파일(cpt-taxonomy.php) 을 만듭니다. 그리고 function.php에 링크를 걸어줍니다.
커스텀 페이지 등록 코드와 등록방법 2
1. 이번에는 앞에서 만든 코드에 데이터를 다양하게 부르기 위해 taxonomy를 사용해 봅시다. 먼저 앞에서 function.php 에 만든 코드를 삭제합니다. 그리고 cpt-taxonomy.php에 아래와 같은 코드를 넣읍시다.
<?php function zb_register_custom_post_types() {
// Register Works $labels = array( 'name' => _x( 'Works', 'post type general name' ), 'singular_name' => _x( 'Work', 'post type singular name'), 'menu_name' => _x( 'Works', 'admin menu' ), 'name_admin_bar' => _x( 'Work', 'add new on admin bar' ), 'add_new' => _x( 'Add New', 'work' ), 'add_new_item' => __( 'Add New Work' ), 'new_item' => __( 'New Work' ), 'edit_item' => __( 'Edit Work' ), 'view_item' => __( 'View Work' ), 'all_items' => __( 'All Works' ), 'search_items' => __( 'Search Works' ), 'parent_item_colon' => __( 'Parent Works:' ), 'not_found' => __( 'No works found.' ), 'not_found_in_trash' => __( 'No works found in Trash.' ), 'archives' => __( 'Work Archives'), 'insert_into_item' => __( 'Insert into work'), 'uploaded_to_this_item' => __( 'Uploaded to this work'), 'filter_item_list' => __( 'Filter works list'), 'items_list_navigation' => __( 'Works list navigation'), 'items_list' => __( 'Works list'), 'featured_image' => __( 'Work feature image'), 'set_featured_image' => __( 'Set work feature image'), 'remove_featured_image' => __( 'Remove work feature image'), 'use_featured_image' => __( 'Use as feature image'), );
$args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'show_in_rest' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'works' ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 5, 'menu_icon' => 'dashicons-archive', 'supports' => array( 'title', 'thumbnail', 'editor' ), );
register_post_type( 'zb-work', $args );
} add_action( 'init', 'zb_register_custom_post_types' ); |
2. 새로생성한 Work CPT 안에 원하는 포스트를 2~3개 만들어 봅시다. 각 페이지에 feature image를 정해줍니다.
3. 구분 할 수 있도록 각각 Slug 이름을 맞춰줍니다.
4. 커스텀 페이지 파일을 만들면 Settings -> Permalink 를 저장해줍니다. 하지만, 그 작업을 계속 하지 않아도 되도록 하려면 아래와 같은 코드를 넣습니다. 사용자가 "영구 링크 저장"을 클릭 할 필요가 없도록 테마를 활성화 할 때 다시 쓰기 규칙을 비우기 위해 register_post_type () 함수에 필요합니다. register_post_type ()을 포함하는 함수 바로 뒤에 삽입합니다.
앞에서 만든 cpt-taxonomy.php 파일에 아래 코드를 추가 입력합니다.
function zb_rewrite_flush() { ms_register_custom_post_types(); flush_rewrite_rules(); } add_action( 'after_switch_theme', 'zb_rewrite_flush' ); |
5. 메뉴에 앞에서 만든 커스텀 페이지들을 추가 해줍니다. 프론트 페이지에서 보면 아래와 같은 메뉴가 보이도록 설정해 주면 됩니다.
'디지털노마드 > WordPress 강좌' 카테고리의 다른 글
웹페이지에 구글맵 넣는 간단한 방법 (2) | 2020.11.27 |
---|---|
WP_Query 사용해서 데이터 호출하기 (2) | 2020.11.26 |
컨텐츠 부르기와 글 길이 줄이기 (2) | 2020.11.25 |
ACF 텍스트 필드 활용해서 페이지 꾸미기 (0) | 2020.11.23 |
ACF - Advanced Custom Fields 로 주소 입력하기 (2) | 2020.11.22 |