사용자 정의 게시물 유형의 부모-자식 관계
게시 됨: 2020-08-18누가 체계적인 WordPress 웹 사이트를 원하지 않습니까? 이것이 바로 맞춤 포스트 유형이 중요한 이유입니다. CTP를 사용하면 데이터와 손쉬운 액세스를 분리하고 필요할 때 업데이트할 수 있습니다. 그러나 이 콘텐츠를 구성하고 계층 구조를 부여할 수 있었던 것은 맞춤 게시물 유형의 부모-자식 관계였습니다 . 그러나 부모-자식 관계에 대해 이야기하기 전에 처음부터 시작하겠습니다.
대망의 CPT
WordPress를 업데이트하는 것이 왜 중요한지 모르겠다면 여기 분명한 예가 있습니다. 몇 년의 기다림 끝에 WordPress 3.0이 도착했을 때 마침내 맞춤형 게시물 유형을 만들 수 있었습니다. 그리고 이것은 정말로 당신이 가능한 한 빨리 알고 싶어했던 기회였습니다. 이를 통해 WordPress 웹 사이트는 간단한 블로깅 플랫폼에서 강력한 제어 관리 시스템으로 변모했습니다. 몇 줄의 코드만으로 우리만의 유형을 가질 수 있습니다.
사용자 정의 포스트 유형에서 부모-자식 관계에 도달하기 전에 먼저 사용자 정의 포스트 유형이 무엇인지 봅시다.
CPT 란 무엇입니까?
사용자 정의 게시물 유형의 CPT는 콘텐츠로 간주될 수 있습니다. "게시물"이라는 용어는 어떤 식으로든 블로그 게시물이 아니기 때문에 혼동을 줄 수 있습니다. CPT는 원하는 모든 콘텐츠가 될 수 있으며 이를 정의하는 엄격한 규칙은 없습니다 . 분명히 기본 및 사용자 정의 게시물 유형이 있습니다. 기본 게시물 유형은 블로그 게시물, 페이지 및 첨부 파일, 개정판, 탐색 메뉴입니다.
반면에 사용자 정의 게시물 유형을 사용하면 정보 생성, 저장 및 편집을 보다 창의적으로 제어할 수 있습니다.
사용자 정의 게시물 유형을 블로그 게시물과 혼합해서는 안 됩니다. 블로그 게시물의 구조와 계층 구조를 만들고 싶다면 WordPress에 카테고리와 하위 카테고리를 마음대로 사용할 수 있습니다.
사용자 정의 게시물 유형에 사용
WordPress 기본 게시물 유형이 있지만 일부 사람들은 그 이상이 필요합니다. 다음은 사용자 정의 게시물 유형이 유용한 몇 가지 예입니다.
- 이벤트 유형 및 장소가 있는 이벤트 목록 사이트
- 부동산 목록
- 제품 옵션이 있는 전자상거래 사이트
- 티켓 시스템
- 디자인 갤러리 또는 쇼케이스
이러한 아이디어는 제안 중 일부일 뿐입니다. 사용자 정의 포스트 유형을 사용할 수 있는 더 많은 아이디어가 있으므로 상상력을 마음껏 발휘하십시오.
부모-자식 관계 및 게시물
설정으로 이동하여 "계층적" 옵션을 활성화하면 게시물이 페이지처럼 작동하도록 할 수 있고 부모/자식 관계를 얻을 수 있습니다. 예를 들어 "drink"라는 게시물 유형과 "liquor"의 상위 페이지, "vodka"의 하위 페이지가 있다고 가정해 보겠습니다. "보드카" 게시물을 볼 때 URL은 다음과 같습니다. yoursite.com/drink/liquor/vodka/
기본적으로 이것은 서로 관련된 다른 게시물 유형이 아니라 게시물 유형 내의 게시물에만 영향을 미칩니다. 예를 들어 "drink"라는 게시물 유형은 "food"라는 게시물 유형에 대한 하위 항목이 아닙니다.
옵션 제한
게시물 관계에 대해 말할 때 WordPress는 거의 제공하지 않습니다. 사실, 커스텀 타입 포스트 의 부모/자식 관계 는 워드프레스가 지원하는 유일한 종류의 관계입니다. 그러나 사용자 정의 게시물 유형을 상위 유형으로 만들고 다른 사용자 정의 게시물 유형을 하위 유형으로 만드는 것은 어려울 수 있습니다.

다음은 다른 게시물 유형을 보고 하위 게시물을 상위 게시물에 할당할 수 있는 한 프로젝트의 예입니다.
- "Neighborhood"라는 사용자 정의 게시물 유형
- 이 지역 내 장소의 경우 "장소"라는 사용자 지정 게시물 유형이 있습니다.
- 이러한 사용자 정의 게시물 유형은 비계층적입니다.
- 목표는 부모가 게시할 이웃에 각 장소를 할당하는 것입니다.
상위 게시물 할당
지금쯤이면 게시물 유형에 대해 조금 알고 작동 방식을 알 수 있기를 바랍니다. 그러나 상위 게시물을 지정하려면 약간의 코딩이 필요합니다. WordPress의 단축 코드에 익숙하지 않은 경우 기본 사항을 이해하려고 노력하십시오. 상위 게시물을 할당하려면 플러그인의 관리자 파일에 다음 코드만 추가하면 되므로 기본 사항이면 충분합니다.


설명을 위해 여기서는 플랫 포스트 유형인 Neighborhood 및 Place를 사용합니다. 이제 코딩할 시간입니다.
/* Hook meta box to just the 'place' post type. */ add_action( 'add_meta_boxes_place', 'my_add_meta_boxes' ); /* Creates the meta box. */ function my_add_meta_boxes( $post ) { add_meta_box( 'my-place-parent', __( 'Neighborhood', 'example-textdomain' ), 'my_place_parent_meta_box', $post->post_type, 'side', 'core' ); } /* Displays the meta box. */ function my_place_parent_meta_box( $post ) { $parents = get_posts( array( 'post_type' => 'neighborhood', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1 ) ); if ( !empty( $parents ) ) { echo '<select name="parent_id" class="widefat">'; // !Important! Don't change the 'parent_id' name attribute. foreach ( $parents as $parent ) { printf( '<option value="%s"%s>%s</option>', esc_attr( $parent->ID ), selected( $parent->ID, $post->post_parent, false ), esc_html( $parent->post_title ) ); } echo '</select>'; } }
게시물 유형 이름을 자신의 게시물 유형으로 변경하는 것을 잊지 마십시오. 코드를 더 잘 이해하고 웹사이트에서 사용하기 위해 GitHub에서 유용하게 사용할 수 있는 또 다른 예가 있습니다.
게시물 관계
사용자 정의 게시물 유형의 부모-자식 관계는 유용하지만 매우 제한적입니다. 더 복잡한 솔루션을 원하면 다른 곳을 찾아야 합니다. 포스트 관계의 유사한 효과를 달성하는 데 도움이 될 수 있는 일부 플러그인입니다.

포스트 관계가 필요한 이유는 무엇입니까?
사이트의 게시물 간에 연결을 생성하려면 기본적으로 게시물 관계를 사용합니다. 그리고 그들이 그렇게 좋은 이유는 우리가 고급 웹사이트를 만들 수 있기 때문입니다. 사용자 정의 게시물 유형 게시물을 서로 연결하면 데이터 중복을 피할 수 있고 모든 사람이 한 번 이상 정보를 편집할 필요가 없도록 합니다. 또한 시간은 돈이기 때문에 일상적인 작업을 피할 수 있는 방법이 필요합니다.
사용자 정의 게시물 유형에서 상위-하위 관계를 사용할 때의 이점
사용자 정의 게시물 유형에서 부모-자식 관계를 사용하는 것의 분명한 이점 중 하나는 사이트를 정렬된 상태로 유지할 수 있다는 것입니다. 그리고 검색 엔진과 사용자는 조직적인 구조 의 사이트를 좋아합니다. 그러나 이것의 이점을 실제로 경험하기 위해서는 좋은 계획을 세우고 그것을 고수해야 함을 명심하십시오.