WordPress에서 사용자 정의 게시물 유형 및 사용자 정의 필드를 구현하는 방법

게시 됨: 2014-06-10

WordPress는 더 이상 블로그에만 국한되지 않습니다. 제공하는 모든 종류의 콘텐츠를 표시하고 형식을 지정할 수 있는 완전한 기능을 갖춘 콘텐츠 관리 시스템입니다. 이제 WordPress를 확장하는 두 가지 좋은 방법인 사용자 정의 게시물 유형과 사용자 정의 필드에 대해 이야기해 보겠습니다.

사용자 정의 게시물 유형

테스트 사이트인 Monday Morning Mug(이메일 통합 블로그 게시물에서 사용)에 처리해야 할 새로운 문제가 있는 것 같습니다. 블로그가 너무 커져서 전임 커피 리뷰 직원을 고용했습니다. 그들은 커피를 끓이고 리뷰를 작성하느라 바빴습니다. 그들은 이러한 리뷰를 블로그에 게시했지만 독자들은 이러한 모든 리뷰가 "실제" 블로그 콘텐츠를 방해하고 있다고 말했습니다. 우리는 커피 리뷰를 위한 별도의 장소를 만들어야 하지만 일반적인 WordPress 페이지는 그것을 자르지 않을 것입니다. 리뷰어들은 또한 웹사이트에 커피의 원산지 및 시음 노트와 같은 정보를 쉽게 저장할 수 있는 장소가 있었으면 좋겠다고 제안했습니다. 이것은 우리 사이트에 새로운 콘텐츠 섹션을 생성할 수 있는 WordPress 기능인 사용자 정의 게시물 유형에 대한 완벽한 사용처럼 들립니다.

사용자 정의 게시물 유형은 매우 유연하며 모든 종류의 콘텐츠에 대해 구현할 수 있습니다. 인용문, 비디오 및 다양한 페인트 음영은 모두 사용자 정의 게시물 유형의 예입니다.

커피 리뷰로 가득 찬 /coffee /coffees/ 하위 디렉토리에 웹사이트의 새 섹션을 추가하려고 합니다. 이것은 약간의 코드 랭글링이 필요하지만 비교적 쉬운 프로세스여야 합니다.

참고: 이렇게 하려면 일반적으로 FTP/SFTP/SSH 액세스가 필요한 WordPress 설치 디렉터리에서 .php 파일을 편집할 수 있어야 합니다. 계속하기 전에 이것을 가지고 있는지 확인하십시오.

모든 WordPress 테마는 다음 위치에 있는 functions.php 파일을 활용할 수 있습니다.
/wp-content/themes/your_current_theme/functions.php
이 파일은 일반적으로 테마별 사이트 변경과 우리가 하려는 것과 같은 소규모 사용자 지정 사이트 수정에 사용됩니다.

참고: 우리는 functions.php 파일에 코드를 추가할 것입니다. 이것은 그것이 테마에 따라 다르다는 것을 의미합니다. 이것을 functions.php 파일에 추가한 다음 WordPress 설치의 테마를 변경하면 웹사이트에서 사용자 정의 게시물 유형이 제거됩니다. Custom Post Type UI와 같은 플러그인을 활용하여 사용자 정의 콘텐츠 유형을 유지할 수 있습니다.

1. functions.php 파일을 열고 파일 맨 아래에 다음 코드를 추가합니다.

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

우리는 코드가 무엇을 하는지 모르는 상태에서 코드를 사용하는 것을 특별히 좋아하지 않기 때문에 이 코드가 무엇을 하는지 살펴보겠습니다.

참고: $labels$args 는 나중에 해당 함수에 인수로 전달되더라도 register_post_type() 함수 외부에서 정의된다는 것을 눈치채셨을 것입니다. 이 방법은 구성과 가독성에 도움이 되지만 두 배열을 단일 인수로 압축할 수 있습니다 . 이해하기가 더 어려울 것입니다.

$args 배열에는 새 콘텐츠 유형을 정의하는 데 필요한 모든 세부 사항이 포함되어 있습니다. 다음은 수행하는 작업입니다.

  • 'labels' – 콘텐츠 유형을 정의하는 배열입니다. 사용할 수 있는 더 많은 레이블이 있으며 전체 목록은 여기 문서에서 확인할 수 있습니다.
  • 'public' – 게시물을 관리자 패널 외부에서 볼 수 있는지 여부를 정의하는 부울입니다.
  • 'has_archive' – true인 경우 이 부울은 표준 WordPress 게시물과 마찬가지로 이러한 유형의 사용자 지정 게시물 아카이브를 생성합니다.
  • 'menu_position' – 이 정수는 사용자 정의 게시물 탐색 버튼이 이동하는 위치를 변경합니다. 숫자 5는 게시물 탭 바로 아래로 이동한다는 것을 나타냅니다. 숫자 코드의 전체 목록은 동일한 문서를 확인하십시오.
  • 'description' – 게시물 유형을 설명합니다.
  • 'rewrite' - 이것은 슬러그를 "리뷰"로 변경하여 사용 가능한 영구 링크 구조를 만드는 데 도움이 됩니다. (부울일 수도 있습니다. 자세한 내용은 설명서를 확인하세요.)
  • 'supports' – 어떤 기본 WordPress 편집/게시 기능이 활성화되었는지 정의하는 배열입니다. 이것은 매우 유연하고 더 많은 옵션이 있지만 이 게시물에는 최소한 custom-fieldseditor 가 필요합니다.

다음으로 register_post_type() 함수가 호출되어 방금 정의한 인수 배열을 사용하여 리뷰라는 새로운 게시물 유형을 생성합니다.

마지막으로 프로세스를 완료하기 위해 마지막 함수를 호출해야 합니다. register_post_type() 은 항상 'init' 작업으로 초기화되어야 합니다. 다음을 호출하여 새 함수를 init에 연결할 수 있습니다.

add_action(‘init’, ‘create_new_post_type’);

대박! 이제 WordPress 관리자 패널에 로그인하면 왼쪽에 "리뷰"라는 새 탭이 표시됩니다.

커피_리뷰

2. 리뷰가 사용자 정의 게시물 유형으로 설정되었으므로 독자가 게시물을 쉽게 찾을 수 있도록 영구 링크 구조를 업데이트해야 합니다. 또한 URL을 훨씬 더 읽기 쉽고 SEO 친화적으로 만듭니다.

3. 설정 -> 영구 링크 메뉴 모음에서 영구 링크 구조에 대한 일반적인 옵션을 찾을 수 있습니다. /%category%/%postname%/ 필드와 일치하도록 사용자 정의 설정을 변경하겠습니다.

즉, WordPress는 게시물의 카테고리 및 제목과 일치하는 URL을 생성합니다.

참고: 이는 사이트 전체에 적용되는 변경 사항이며 다른 카테고리의 게시물에도 영향을 미칩니다.

custom_permalink

이제 리뷰어가 수마트라 케티아라 커피에 대해 작성한 게시물의 URL을 살펴보겠습니다.

sumatra_permalink

환상적이야! 해당 URL을 확인하세요. 자체 디렉토리로 분리된 리뷰가 있으며 URL은 일반 영어로 작성됩니다. 이제 독자들은 링크를 클릭할 때 무엇을 얻게 될지 정확히 알고 있습니다.

사용자 정의 필드

리뷰어들은 새로운 리뷰 섹션을 좋아하지만 원산지 및 시음 노트와 같이 모든 커피에 대해 쓰는 공통 정보를 입력할 수 있도록 백엔드에 무언가를 통합하도록 요청했습니다. 이것은 운 좋게도 구현하기가 매우 쉬운 사용자 정의 필드를 완벽하게 사용하는 것처럼 들립니다.

1. 개별 리뷰 편집기에서 편집기의 오른쪽 상단 모서리에 화면 옵션 버튼이 표시됩니다.

화면 옵션

클릭하면 다음과 같이 확장됩니다.

screen_options_dropdown

2. 사용자 정의 필드 상자를 선택합니다.

편집기 아래에 방금 활성화한 사용자 정의 필드 상자가 표시됩니다.

custom_fields_blank

3. 두 상자에 아무거나 입력할 수 있습니다. 이름 필드에 입력하고 추가하는 모든 항목은 나중에 사용할 수 있도록 저장됩니다. 여기에서 우리는 우리 커피가 생산된 지역과 국가를 나열합니다.

custom_fields_region

사용자 정의 필드를 사용하면 별도의 위치에 있는 모든 게시물의 카테고리에 중요한 데이터를 매우 쉽게 표준화할 수 있습니다. 이제 우리는 리뷰에 표시할 정보를 얻기만 하면 됩니다.

4. 이 코드 태그를 테마 문서 중 하나에 추가할 것입니다.

<br /><?php the_meta(); ?><br />

참고: 이 예에서는 이 태그를 content.php 파일에 넣지만 값 테이블을 저장할 적절한 위치를 찾아야 합니다. 또한 나머지 테마와 일치하도록 이 태그의 스타일을 지정해야 합니다. 자세한 내용은 여기에서 확인할 수 있습니다.

블로그를 다시 확인하면 태그가 리뷰에 목록을 삽입했음을 알 수 있습니다.

custom_field_example

멋진! 이제 독자와 리뷰어 모두 행복합니다. 우리는 커피에 대한 리뷰를 저장할 수 있는 맞춤형 게시물 유형을 구축할 수 있었고 리뷰어에게 모든 다른 리뷰에 대한 중요한 정보를 모두 저장할 수 있는 장소를 제공할 수 있었습니다.