사용자 정의 게시물 유형 만들기

게시 됨: 2016-08-23

WordPress는 꽤 오랫동안 " 단순한 블로깅 " 플랫폼이 아니었습니다. 적절한 콘텐츠 관리 시스템(CMS)으로 전환하는 데 도움이 된 주요 기능 중 하나는 맞춤 게시물 유형 입니다.

이것은 사용자 정의 포스트 유형(CPT) 주제에 대한 3부작 시리즈의 첫 번째 기사입니다. 다음 두 항목에서 논의할 주제는 다음과 같습니다.

  • 사용자 정의 분류
  • 사용자 정의 게시물 유형 표시 (템플릿 및 쿼리)

그러나 지금은 사용자 정의 게시물 유형과 설정 방법을 자세히 살펴보겠습니다.

맞춤 게시물 유형이란 무엇입니까?

기본적으로 WordPress는 다음과 같은 게시물 유형을 사용합니다.

  • 게시하다
  • 페이지
  • 부착
  • 개정
  • 메뉴 아이템

그렇다면 맞춤 게시물 유형은 무엇입니까? 사용자 정의 게시물 유형은 기본적으로 사용자 정의 매개변수 (사용자 정의 필드, 사용자 정의 카테고리/태그 구조 등)가 있는 WordPress 게시물입니다. 사용자 정의 게시물 유형의 고전적인 예는 책, 리뷰, 평가, 팀 구성원, 포트폴리오 등입니다. 그러나 생성하는 콘텐츠 유형을 나타내는 모든 것에 사용할 수 있습니다.

왜 하나를 사용하겠습니까?

일반 WP 게시물을 사용하고 카테고리와 태그를 사용하여 다양한 "게시물 유형"을 구분할 수 있습니다. 그러나 이것은 이상적이지 않으며 나중에 합병증 을 유발할 수 있습니다. 다음은 사용자 정의 게시물 유형을 사용하려는 몇 가지 이유입니다.

  • WordPress에서 사용 가능한 다른 게시물 유형과 일부 콘텐츠를 분리하려는 경우
  • 게시하려는 콘텐츠 전용 사용자 정의 필드가 필요합니다.
  • 다른 게시물 유형(예: 게시물 또는 페이지)과 다르게 콘텐츠를 표시해야 합니다.

당신이 음식 블로그를 쓰고 있다고 가정해 봅시다. 일반적으로 레스토랑 리뷰를 게시하지만 자신의 레시피도 게시하고 싶습니다. 일반 게시물과 다른 레이아웃이 필요하기 때문에 레시피는 완벽한 맞춤형 게시물 유형을 만들 것입니다. 예를 들어 재료와 같은 일부 사용자 정의 필드도 있을 수 있습니다. 레시피 CPT 의 도입으로 블로그 섹션에는 일반 게시물만 포함되고 레시피에는 자체 섹션(자체 레시피 아카이브 페이지)이 있습니다. 이렇게 하면 레시피만 보고 싶어하는 방문자가 더 쉽게 사용할 수 있습니다.

이 기사 시리즈에서는 Shaka 테마에 대한 평가 CPT를 만들 것입니다. 사용자가 모든 고객 평가를 표시할 수 있는 페이지를 원한다고 가정해 보겠습니다. 그는 이 사용자 정의 게시물 유형에 몇 가지 사용자 정의 필드를 추가하고 이러한 평가를 표시할 다른 레이아웃도 원합니다. 먼저 사용자 정의 게시물 유형을 등록 하는 방법을 살펴보겠습니다.

사용자 정의 게시물 유형을 어떻게 만들 수 있습니까?

새 사용자 정의 게시물 유형을 만드는 방법에는 두 가지 가 있습니다.

첫 번째 옵션은 사용자 정의 게시물 유형을 등록하는 플러그인을 사용하는 것입니다. 이 방법은 PHP 코드에 익숙하지 않은 사용자에게 좋습니다. 필요한 세부 정보만 입력하면 나머지는 플러그인이 처리합니다.

두 번째 방법은 사용자 정의 게시물 유형을 수동으로 등록하는 것입니다. 즉, 몇 가지 코드를 작성해야 하지만 당황하지 마십시오. 상당히 간단하며 깔끔한 트릭도 보여 드리겠습니다.

플러그인으로 사용자 정의 게시물 유형 만들기 – 쉬운 방법

사이트에 사용자 정의 게시물 유형을 빠르고 쉽게 추가하려면 이러한 기능을 제공하는 플러그인을 사용해야 합니다. 아마도 가장 널리 사용되는 플러그인은 Custom Post Type UI이며 무료이며 사용하기 쉽습니다. 설정해 보겠습니다.

  1. wp-admin 대시보드에서 Custom Post Type UI 플러그인을 설치하고 활성화합니다.
  2. 플러그인을 활성화하면 CPT UI 관리 메뉴 항목을 사용할 수 있습니다. CPT UI로 이동 -> 게시물 유형 추가/편집,
  3. 여기에서 CPT를 사용자 정의하기 위해 적용할 수 있는 많은 설정을 찾을 수 있습니다. 우리는 이 기사에서 그것들을 모두 자세히 다루지 않을 것입니다. 그러나 각 설정 레이블 옆에는 각 설정의 기능을 설명하는 도구 설명 아이콘이 있습니다. 사용 사례(평가 CPT)에 필요한 사항을 설정해 보겠습니다.
  4. 슬러그: testimonials, 복수 레이블: Testimonials 및 단수 레이블: Testimonial,
  5. 추가 레이블 편집 버튼을 클릭하여 더 정확한 레이블을 설정할 수 있습니다. 하지만 이것을 건너뛰고 나중에 문제가 발견되면 다시 돌아올 수 있습니다.
  6. 모든 기본 설정은 사용 사례에 적합합니다. 사용자 지정 필드 지원을 추가하기만 하면 됩니다(지원 섹션에서 사용자 지정 필드 확인란 선택).
  7. 게시물 유형 추가를 클릭하여 맞춤형 게시물 유형을 생성합니다.

사용자 정의 게시물 유형을 생성하자마자 새로운 사용자 평가 wp-admin 대시보드 메뉴 항목이 나타납니다. 이제 사용자 정의 게시물 유형(제목, 편집자, 추천 이미지 및 사용자 정의 필드)을 생성할 때 선택한 모든 필드로 새로운 평가를 생성할 수 있습니다.

CPT - 새로운 평가 추가

이 사용자 정의 게시물 유형에 분류를 설정할 수도 있지만 다음 기사에서 이에 대해 다룰 것입니다.

수동으로 사용자 정의 게시물 유형 만들기 – 코딩 관련

다음과 같이 자문해 볼 수 있습니다. 플러그인으로 사용자 정의 게시물 유형을 만들 수 있다면 누군가가 코드를 사용하여 수동으로 만들고 싶어할까요?

플러그인으로 생성하는 기능은 확실히 매우 편리 하지만 코드를 통해 만들고 싶은 경우가 있습니다. 예를 들어, 클라이언트용 사이트를 개발 중이고 클라이언트가 이러한 설정을 변경할 수 없도록 하거나 해당 사이트에 플러그인을 하나 더 설치하고 싶지 않은 경우입니다. 또한 여러 사이트에서 사용할 테마(또는 하위 테마)를 만들려는 경우 모든 사이트에 대해 플러그인 단계를 반복하는 것보다 코드에 사용자 정의 게시물 유형을 등록하는 것이 더 쉽습니다 . 각 방법에는 장단점이 있으므로 자신의 경우에 가장 적합한 방법을 결정해야 합니다.

사용자 정의 게시물 유형을 생성하는 코드는 테마( functions.php )에 직접 배치할 수 있습니다. 또는 새 플러그인을 만들고 거기에 CPT 코드를 넣을 수 있습니다. 이것은 또한 WordPress 커뮤니티에서 분열적인 질문입니다. 한 쪽에서 플러그인 에 위치해야 한다고 말합니다. 테마를 변경하면 CPT의 데이터가 그대로 유지됩니다(그러나 출력은 스타일이 지정되지 않고 새 테마에서 보기 좋지 않음). 그리고 다른 쪽에서는 CPT 코드를 테마에 직접 넣는 것이 더 낫다고 생각합니다. 테마에 따라 다르고 이 테마에 맞게 스타일도 지정되어 있기 때문입니다.

개인적으로 항상 스타일(테마)과 기능(플러그인)을 분리하는 것이 더 낫다고 생각하므로 CPT 등록을 위한 새 플러그인을 만드는 것이 더 나은 선택입니다. 새 테마로 전환하여 CPT의 데이터를 잃는 것보다 CPT 출력을 보기 좋게 만들기 위해 새 테마에 스타일을 추가하는 것이 더 쉽습니다.

코드로 사용자 정의 게시물 유형 등록

나는 멋진 트릭을 약속했다, 그렇지? 글쎄, 당신은 실제로 코드를 통해 사용자 정의 게시물 유형을 등록할 수 있도록 코드를 작성할 필요가 없습니다 . 이상하게 들릴지 모르지만 사실입니다. generatewp.com에서 이 도구를 사용하여 CPT 등록에 필요한 코드를 생성할 수 있습니다. 데이터를 입력하고 코드를 생성하기만 하면 됩니다. 나는 우리의 평가 사용 사례를 위해 이것을했고 이것이 나온 것입니다.

 // Register Custom Post Type function custom_post_type_testimonials() { $labels = array( 'name' => _x( 'Testimonials', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonials', 'text_domain' ), 'name_admin_bar' => __( 'Testimonials', 'text_domain' ), 'archives' => __( 'Item Archives', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'add_new' => __( 'Add New', 'text_domain' ), 'new_item' => __( 'New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'search_items' => __( 'Search Item', 'text_domain' ), 'not_found' => __( 'Not found', 'text_domain' ), 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label' => __( 'Testimonials', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page', ); register_post_type( 'testimonials', $args ); } add_action( 'init', 'custom_post_type_testimonials' );

... 프로젝트에서 사용할 수 있는 완벽하게 유효한 PHP 코드. 앞에서 논의한 바와 같이 이 코드를 새로 생성된 플러그인에 넣거나 테마의 functions.php 파일에 넣을 수 있습니다. 편의상 후자를 선택했습니다. 이 코드를 테마의 functions.php 파일에 넣었고, 후기 wp-admin 메뉴가 나타났고 이제 새로운 사용 후기를 만들 수 있습니다(위의 플러그인 방법과 동일).

wp-admin 메뉴에 표시될 사용자 정의 게시물 유형에 대해 다른 아이콘을 설정할 수도 있습니다. $args 배열에 'menu_icon' => 'dashicons-businessman' 줄을 추가하기만 하면 됩니다. 가능한 모든 아이콘 목록은 다음에서 찾을 수 있습니다. WordPress Dashicons. (이 팁에 대해 Alexander에게 감사드립니다).

코드를 자세히 살펴보겠습니다.

  • 전체 CPT 등록 프로세스는 custom_post_type_testimonial() 함수로 캡슐화되며, 이 함수는 다음 코드 행으로 스니펫 끝에 있는 init WP 후크에 연결됩니다. add_action( 'init', 'custom_post_type_testimonials' ); . 이 add_action 호출은 모든 것을 움직이게 하고 WordPress를 마법처럼 만드는 마지막 호출입니다.
  • 함수 내부의 첫 번째 코드 블록은 이 사용자 정의 게시물 유형에 대한 번역 문자열을 보유하는 $labels 라는 데이터 배열입니다.
  • 두 번째 블록은 CPT 등록에 사용되는 인수 배열이며 여기에서 CPT에 대한 모든 설정을 정의할 수 있습니다. CPT가 지원해야 하는 필드(공개적으로 표시되어야 하는 경우), wp-admin 메뉴의 위치(보관 페이지가 있는 경우 등). 전체 옵션 세트를 보려면 이 WP 코덱스 페이지를 방문하십시오.
  • 함수의 마지막 줄은 register_post_type( 'testimonials', $args ); . 이렇게 하면 위의 $args 에서 지정한 설정으로 '평가' 사용자 정의 게시물 유형이 등록됩니다.

그게 다야! 약간의 PHP 코드로 사용자 정의 게시물 유형을 등록했습니다.

생성된 코드에서 변경할 수 있는 유일한 개선 사항은 이스케이프 국제화 기능을 사용하는 것입니다. 따라서 _x()__() 대신 esc_html_x()esc_html__() 을 사용합니다. 번역 문자열을 포함하여 출력 값을 이스케이프하는 것은 항상 좋지만 다른 블로그 게시물의 주제입니다.

시리즈의 다음 기사: 사용자 정의 분류를 만드는 방법.