WordPress 사용자 정의 게시물 유형에 대한 최종 가이드
게시 됨: 2024-03-2610여년 전, 저는 WordPress를 출판 플랫폼으로 사용하고 플러그인을 구축하는 CMS에만 집중하기로 인생과 경력을 바꾸는 결정을 내렸습니다. 주된 이유는 스니펫과 튜토리얼이 포함된 수많은 게시물을 포함한 훌륭한 문서와 WordPress 확장의 용이성이었습니다. 당시 내 사용 사례에서 WordPress를 확장하는 가장 눈에 띄는 기능은 사용자 정의 게시물 유형이었습니다.
2010년 WordPress 버전 3을 중심으로 개선된 CPT(Custom Post Type)는 다양한 방식으로 사용됩니다. 나는 당신이 모르는 사이에 그들을 만났을 것이라고 확신합니다. CPT에 대한 개요, 시간이 지남에 따라 CPT를 어떻게 사용했는지에 대한 구체적인 예, 직접 설정하는 방법 및 관련 플러그인을 사용하여 더 많은 작업을 수행하는 방법을 알려 드리겠습니다.
맞춤 게시물 유형이란 무엇입니까?
WordPress 코어에는 다양한 게시물 유형이 제공됩니다. 가장 확실한 것은 게시물, 페이지 및 첨부 파일입니다.
WordPress 6.4에는 다음 네 가지가 더 있습니다.
- 개정
- 탐색 메뉴
- 블록 템플릿
- 템플릿 부분
재미있는 사실: 댓글은 게시물 유형이 아닙니다. WordPress가 원래 댓글을 중심으로 하는 블로그 플랫폼이 아니었다면 요즘에는 댓글을 포스트 유형으로 처리할 수도 있을 것 같습니다.
이것이 시사하는 바와 같이 게시물 유형은 항상 명확하지 않으며 우리가 "콘텐츠"라고 설명하는 프런트엔드에 표시되는 것이 반드시 필요한 것도 아닙니다. 데이터베이스의 관련 항목 그룹에 가깝습니다.
이러한 "사물"을 더 추가할 수 있으며 이를 "사용자 정의" 게시물 유형이라고 합니다.
WordPress의 공식 용어는 아니지만 눈에 보이는 사용자 정의 게시물 유형에 대해 사용자 정의 "콘텐츠" 유형이라는 문구를 좋아합니다. 나중에 몇 가지 예를 들어 보겠습니다.
맞춤 게시물 유형을 사용하는 이유는 무엇입니까?
WP 시장은 지금 볼 수 있는 평생 거래와 같이 시간이 지남에 따라 여러 사용자 정의 게시물 유형을 사용해 왔습니다.
나는 개인적으로 많은 일에 사용자 정의 게시물 유형을 사용해 왔습니다.
가장 일반적인 것은 웹사이트의 별도 콘텐츠 섹션입니다. 이는 해당 콘텐츠가 내장된 게시물 및 페이지와 다르게 표시되고 동작해야 할 때 가장 적합합니다.
WP 시장이 전용 "뉴스" 게시물 유형도 가지고 있다고 가정해 보겠습니다. 이 사용자 정의 게시물 유형을 등록하면 다음과 같은 이점이 있습니다.
- WP Admin의 메뉴에 있는 고유한 "뉴스" 항목입니다.
- 사용자 및 사용자 역할에 해당 유형에 대해 서로 다른 기능을 부여할 수 있는 기회입니다.
- 프런트엔드에 단일 뉴스 항목을 표시하기 위한 다양한 템플릿이 있습니다.
- 뉴스에 대한 별도의 아카이브 및 피드입니다.
- 추가 게시물 메타데이터는 뉴스에만 저장되고 표시됩니다.
또한 다양한 플러그인의 콘텐츠 요소에 사용자 정의 게시물 유형을 사용했습니다. 저는 한때 주택, 예약, 결제가 각각 고유한 특성을 지닌 고유한 사용자 정의 게시물 유형인 별장 예약 플랫폼을 구축한 적이 있습니다. 이는 대부분의 WordPress용 전자상거래 플러그인에서도 수행되는 작업입니다.
또 다른 경우에는 보내는 모든 이메일의 내용을 기록하고 싶었습니다. 그래서 저는 WordPress 백엔드의 적절한 기능을 통해서만 볼 수 있는 이메일 콘텐츠와 첨부된 모든 메타데이터가 포함된 "로그" 게시물 유형을 구축했습니다.
마지막으로 제가 원래 개발한 고급 광고 플러그인은 CPT를 사용하여 광고 콘텐츠를 저장했습니다.
이는 사용자 정의 게시물 유형의 몇 가지 예입니다. 지난 수년에 걸쳐 만난 다른 많은 흥미로운 사용 사례를 언급하는 것을 잊어버렸음이 틀림없다는 것을 알고 있습니다.
WordPress에서 CPT의 가장 큰 장점은 몇 줄의 코드나 플러그인을 통한 빠른 설정만 필요하다는 점이며, WordPress는 이를 관리하고 사이트에 표시하는 데 필요한 많은 로직을 처리합니다. 이제 WordPress 사용자 정의 게시물 유형을 만드는 방법을 바로 살펴보겠습니다.
사용자 정의 게시물 유형 만들기
사용자 정의 게시물 유형은 수동으로 또는 플러그인을 통해 생성할 수 있습니다.
코딩 경험이 없는 경우 플러그인을 사용하면 사용자 정의 게시물 유형을 훨씬 쉽게 만들 수 있습니다.
플러그인 사용의 한 가지 단점은 플러그인을 삭제하자마자 사용자 정의 게시물 유형이 사라진다는 것입니다. 데이터베이스에는 여전히 존재할 수 있지만 WordPress는 더 이상 프런트엔드나 백엔드에서 이에 대해 알지 못합니다.
이 작업을 수십 번 수행한 개발자로서 저는 여전히 수동 방법을 선호합니다. 하지만 WordPress Custom Post Type을 일시적으로 사용하거나 클라이언트를 위한 쇼케이스를 만드는 경우에는 멋진 UI가 포함된 플러그인도 사용한다는 사실을 기꺼이 인정합니다.
사용자 정의 게시물 유형에 대한 결정
사용자 정의 게시물 유형을 생성하는 데 사용하는 방법에도 불구하고 먼저 몇 가지 결정을 내려야 합니다. 이론적으로는 나중에 변경할 수 있지만 그렇게 하면 사이트와 설정에 큰 영향을 미칠 수 있으므로 미리 생각해 두는 것이 가장 좋습니다.
공개인가 아닌가?
맞춤 게시물 유형에 대한 주요 결정은 누가 이를 보고 상호 작용해야 하는지입니다. 사용자 정의 코드를 사용하거나 플러그인 내에서 직접 액세스할 수 있는 아카이브 및 단일 페이지를 포함하여 CPT를 프런트엔드에 표시할지 여부와 사용자가 검색을 통해 찾을지 여부를 선택할 수 있습니다. 메뉴 항목과 함께 WordPress 사이트의 백엔드에 표시되어야 합니까?
"뉴스" CPT는 프런트엔드에 완전히 표시될 수 있지만 내부 로그 또는 결제와 같은 내용은 WordPress 백엔드에서 특정 역할을 가진 사용자에게만 제한될 수 있습니다.
계층적
WordPress 게시물과 페이지 게시물 유형이 약간 다르게 동작한다는 것을 눈치챘을 것입니다. 페이지의 프런트엔드에는 아카이브가 없지만 상위 페이지와 하위 페이지가 있을 수 있습니다.
후자는 "계층 구조"라고 불리며, 자신만의 게시물 유형을 만들 때 정의되기도 합니다.
계층적 게시물 유형의 경우 편집 페이지에서는 상위 페이지와 순서를 선택할 수 있는 옵션을 제공합니다.
페이지에서 메뉴나 목록을 자동으로 만들 때 순서와 상위 페이지가 중요할 수 있습니다. 계층 구조는 URL 슬러그에도 표시됩니다. 내 페이지가 '문제 해결'이고 상위 페이지가 '문서'인 경우 최종 URL은 documentation/troubleshooting
될 수 있습니다.
팁: 더 깊은 계층 구조의 CPT가 있는 경우 게시물을 올바른 순서로 빠르게 정렬하려면 Nested Pages 플러그인을 사용하는 것이 좋습니다.
블록 또는 클래식 편집기
Custom Post Type을 생성할 때 "REST API"에 표시할지 여부를 묻는 메시지가 나타납니다. 해당 기술 용어는 한 가지 중요한 역할을 합니다. 즉, CPT가 블록 편집기를 사용하는지 아니면 클래식 편집기 보기를 사용하는지 결정합니다.
경험상 게시물 유형이 일반 콘텐츠와 유사하고 WordPress 블록을 사용하려는 경우 블록 편집기를 사용하는 것이 좋습니다. 콘텐츠를 위해 화면의 많은 부분을 필요로 하지 않는 사용자 정의 게시물 유형은 클래식 편집기를 선택해야 합니다. 따라서 REST API를 통해 전달하면 안 됩니다.
URL 슬러그 및 구조
당신이 내려야 할 또 다른 중요한 결정은 CPT 슬러그의 이름을 지정하는 것입니다. "뉴스" 게시물 유형은 URL에서 news
로 참조될 수 있지만 더 멋진 내부 이름이 있는 경우 프런트엔드 URL에 대한 짧은 형식을 선택할 수 있습니다.
이는 SEO에 중요한 결정일 수 있으므로 잠시 시간을 내어 생각해 보세요.
지원되는 요소
작성 중인 게시물 유형에 따라 다음 요소에 대한 지원 활성화 여부를 미리 결정할 수도 있습니다.
- 제목(기본적으로 활성화됨)
- 편집기 표시(기본적으로 활성화됨)
- 코멘트
- 개정
- 저자
- 발췌
- 썸네일
미세 조정을 위한 더 많은 옵션이 있습니다. 그러나 위 사항은 WordPress 사용자 정의 게시물 유형을 사용하기 전에 고려해야 할 가장 중요한 사항입니다.
플러그인을 사용하여 사용자 정의 게시물 유형 만들기
이를 염두에 두고 플러그인을 사용하여 사용자 정의 게시물 유형을 생성한 다음 수동으로 동일한 작업을 수행해 보겠습니다.
나는 wordpress.org에서 가장 인기 있는 무료 서비스 중 하나인 WebDevStudios의 CPTUI(Custom Post Type UI)를 선택하겠습니다.
인터페이스는 Custom Post Types 플러그인에서 기대할 수 있는 모든 옵션을 포함하여 매우 간단합니다. 그러나 사용자 정의 게시물 유형은 여전히 이해하기 쉬운 추상적인 개념이며 일반적인 WordPress 게시자가 옵션에 대한 더 깊은 지식 없이 수정해야 하는 기능이 아니라는 점도 분명히 합니다.
팁: 저는 개인적으로 CPT의 "공개" 옵션에 대해 보수적이며 프런트엔드에서 이를 볼 수 있는 사람과 백엔드에서 이를 변경할 수 있는 사람에 대해 최대한 제한합니다. 필요한 경우 나중에 언제든지 추가 액세스 권한을 부여할 수 있습니다.
Custom Post Type UI의 장점
이 플러그인에는 다른 사람들이 갖고 있거나 갖고 있지 않을 수도 있는 몇 가지 점이 마음에 듭니다.
저는 보통 CPT를 수동으로 생성하기 때문에 라벨을 작성하는 데 시간이 많이 걸린다는 것을 알고 있습니다. CPT의 이름을 언급하기 위해 모두 조정하려면 약 36개가 있습니다. 위 스크린샷에서 볼 수 있듯이 Custom Post Type UI 플러그인에는 이러한 라벨을 자동으로 채우는 옵션이 있습니다. 나중에 인터페이스에서 조정할 수 있습니다.
그런 다음 맞춤 게시물 유형을 저장하고 나중에 편집 할 수 있습니다. 슬러그를 변경할 수도 있으며 그러면 플러그인이 해당 유형의 모든 게시물을 마이그레이션합니다. 그것이 필요한 상황을 방지하려고 노력하는 동안, 그것이 가능하고 플러그인에 의해 처리된다는 것을 아는 것이 좋습니다.
사용자 정의 게시물 유형 UI는 내 게시물 유형의 개요를 유지합니다. 다소 부담스럽게 느껴지기는 하지만 사용자 정의 코드보다 검토하기가 훨씬 쉽습니다. 또한 마지막 열에 있는 템플릿 목록을 보는 것도 좋습니다.
이러한 템플릿은 WordPress 사용자 정의 게시물 유형의 마법의 일부입니다. 뉴스 CPT가 슬러그 news
사용한 경우 WordPress는 해당 게시물 유형의 아카이브 페이지를 렌더링하기 위해 테마에서 archive-news.php
라는 파일을 자동으로 찾거나 단일 뉴스 페이지에 대해 single-news.php
라는 파일을 찾습니다. 자세한 내용은 템플릿 계층을 참조하세요.
CPTUI로 코드 생성
마침내 Custom Post Type UI를 추천하게 된 기능은 CPT를 PHP 코드로 내보내는 도구였습니다. CPT UI > 도구 > 코드 가져오기 에서 플러그인 또는 functions.php
에 사용할 PHP 코드를 찾을 수 있습니다. 사람들을 가두지 않은 플러그인 개발자들에게 찬사를 보냅니다.
인터페이스를 통해 사용자 정의 게시물 유형을 신속하게 설정한 다음 이를 사용할 PHP 코드를 가져올 수 있으므로 CPTUI는 개발자에게 이상적인 도구입니다. 심지어 고객이 테스트 사이트에 모든 라벨 등을 포함하여 설정한 다음 필요한 곳으로 마이그레이션하도록 할 수도 있습니다.
플러그인에서 찾을 수 없는 유일한 옵션은 모든 항목과 함께 사용자 정의 게시물 유형을 제거하는 것입니다. 일반적으로 플러그인이나 코드를 삭제해도 맞춤 게시물은 데이터베이스에 남아 있습니다. 그러나 이를 정리하기 위한 전용 플러그인이 있습니다.
코드 사용
개발자이고 코드를 사용하여 사용자 정의 게시물 유형을 구현하려는 경우 WordPress 설명서의 관련 섹션을 알려드리겠습니다.
새로운 Custom Post Type을 등록하는 핵심 함수는 Register_post_type 함수입니다. 해당 매개변수를 사용하면 위에서 언급한 모든 옵션을 설정할 수 있습니다.
모든 게시물 유형은 데이터베이스의 wp_posts
테이블에 저장됩니다. post_type
필드는 게시물 유형이 속하는 항목을 결정합니다.
사용자 정의 게시물 유형이 콘텐츠 그 이상인 경우 게시물 메타데이터를 사용할 수 있습니다. 이 데이터는 wp_postmeta
에 저장됩니다.
그런데 일부 플러그인은 사용자 정의 테이블을 사용하여 콘텐츠 유형을 관리합니다. Custom Post Types API와 함께 제공되는 WordPress 내장 기능을 모두 사용할 수 없으므로 실제로 필요한 경우가 아니면 해당 경로를 사용하지 마십시오.
사용자 정의 게시물 유형 확장
사용자 정의 게시물 유형이 공개인 경우 더 많은 사용자 정의를 원할 수 있습니다. 다음은 몇 가지 옵션입니다.
사용자 정의 필드 및 메타 상자
이벤트나 상점 아이템과 같은 고급 CPT에는 콘텐츠 이상의 것이 필요합니다. 여기가 사용자 정의 필드가 작동하는 곳입니다. 다양한 방식으로 데이터를 구조화하기 위한 입력 필드를 제공합니다. 예를 들어, "이벤트" 게시물 유형에는 이벤트를 표시하고 필터링할 수 있도록 시작 및 종료 날짜 또는 장소가 필요할 수 있습니다.
사용자 정의 코드를 사용하여 사용자 정의 필드와 메타 상자를 추가할 수 있지만 이를 위한 탁월한 플러그인은 매우 잘 알려진 Advanced Custom Fields입니다. 옵션이 너무 많고 관리가 잘 되어 있어서 개발자인 나조차도 내 사이트에 사용자 정의 필드를 코딩하지 않을 것입니다.
사용자 정의 분류
기본 "게시물" 게시물 유형은 "카테고리" 및 "태그"로 주문할 수 있으므로 사용자 정의 게시물 유형에 대한 분류도 등록할 수 있습니다.
위에서 추천한 Custom Post Type UI 플러그인은 이를 생성하는 데도 도움이 됩니다.
역량 관리
회원과 같은 플러그인을 사용하여 사이트에서 새로운 사용자 정의 게시물 유형을 생성 및 변경하거나 기존 관련 사용자 역할을 조정할 수 있는 작성자에 대한 새 역할을 생성할 수 있습니다. 게시물 유형별로 편집 작업흐름이 다른 경우에 권장됩니다.
포스트 유형 전환
현재 WordPress로 구축된 내부 지식 베이스의 콘텐츠를 재구성하고 있습니다. 게시물과 페이지는 여기서 매우 다른 목표를 가지고 있습니다. 그들 중 일부는 목표를 변경했기 때문에 게시물 유형을 전환할 수 있는 솔루션이 필요했습니다.
공개 게시물 유형으로 이 작업을 가볍게 수행하는 것은 권장하지 않지만 유사한 게시물 유형이 있는 비공개 사이트에서는 이를 수행하는 데 문제가 없습니다. 이를 달성하기 위해 저는 번거로움 없이 이를 수행할 수 있게 해주는 훌륭한 플러그인인 Post Type Switcher를 설치했습니다. 플러그인을 설치하면 "게시물 편집" 화면에 "게시물 유형" 섹션이 추가됩니다. 이 인터페이스를 사용하여 필요에 따라 게시물 유형을 변경할 수 있습니다.
결론
나는 여전히 사용자 정의 게시물 유형이 WordPress가 지난 10년 이상 동안 번영할 수 있게 해준 중요한 기능이라고 생각합니다. 이는 우리가 선호하는 CMS를 단순한 블로그 플랫폼에서 이벤트 관리나 온라인 쇼핑을 위한 다목적 도구로 전환한 기반입니다.
많은 웹사이트에서 사용되는 플러그인을 만들 때, 나는 여전히 새로운 게시물 유형을 생성하기 위한 코드를 만납니다. 하지만 나와 고객을 위해 사이트를 구축할 때는 플러그인을 사용하고 있습니다. 이를 통해 사용자 정의 게시물 유형을 훨씬 더 간단하게 생성하고 변경할 수 있으며 제가 구축할 수 있는 것보다 훨씬 더 나은 UI를 갖게 됩니다.