정말 좋은 글이네요! 워드프레스 사용자들에게 매우 유용한 정보입니다. “WordPress 사용자 정의 글 유형의 종합 가이드: 초보자부터 전문가까지”라는 제목이 정말 잘 어울립니다. 이 글을 통해 많은 분들이 워드프레스의 기능을 더 효과적으로 활용할 수 있을 것입니다

3분 읽기
2026-03-11
2026-06-04
2,106
아래 링크를 통해 쇼핑하면 추가 비용 없이 수수료를 받을 수 있습니다.

워드프레스 사용자 정의 게시물 유형이란 무엇인가?

WordPress에는 “기사”(Article)와 “페이지”(Page)라는 두 가지 기본 콘텐츠 유형이 내장되어 있지만, 때로는 이러한 기본 유형만으로는 복잡한 웹사이트 구조의 요구사항을 충족시키기 어렵습니다. 사용자 정의 포스트 유형(Custom Post Type, CPT)은 WordPress의 핵심 기능 중 하나로, 개발자가 독립적인 데이터 구조, 관리 인터페이스, 그리고 표시 로직을 가진 새로운 콘텐츠 유형을 만들 수 있도록 해줍니다. 사용자 정의 포스트 유형을 특정 콘텐츠 형태(예: 제품, 포트폴리오, 이벤트, 책 등)에 맞게 맞춤화된 “컨테이너”라고 생각할 수 있습니다.

CPT(커스텀 포스트 타입, Custom Post Type)를 활성화하면 WordPress 관리자에게 독립적인 메뉴 항목이 생성되며, 이 메뉴 항목은 기본적인 “글” 모듈과 마찬가지로 자체적인 목록, 편집, 게시 기능을 갖추게 됩니다. 하지만 이 CPT의 데이터는 일반 글이나 페이지의 데이터와는 완전히 분리되어 저장됩니다. 예를 들어, 전자상거래 웹사이트에서는 기본적인 “글” 기능을 사용하여 블로그 글을 게시하는 동시에 “제품”이라는 이름의 CPT를 생성하여 모든 상품 정보를 관리할 수 있습니다. 이 두 CPT는 관리자 화면에서 서로 간섭하지 않으며, 프론트엔드에서는 전혀 다른 스타일과 레이아웃으로 표시될 수 있습니다.

간단히 말해, CPT(Custom Post Type)는 WordPress가 전통적인 블로그 플랫폼으로서 가지고 있던 제한을 극복하여, 복잡하고 성능에 영향을 미칠 수 있는 제3자 플러그인에 의존하지 않고도 뉴스 포털, 온라인 쇼핑몰, 기업 웹사이트, 커뮤니티 포럼 등 다양한 유형의 웹사이트를 유연하게 구축할 수 있도록 해줍니다. CPT는 웹사이트의 콘텐츠 구조를 명확하게 하고 관리 효율성을 높이는 데 핵심적인 기술입니다.

추천 읽기 전문 웹사이트를 만들기 위해 필수적인 것: WordPress 테마 개발 및 커스터마이징 완벽 가이드

왜 사용자 정의된 글쓰기 유형을 사용할까요?

웹사이트 개발에서 콘텐츠를 올바르게 구성하는 것은 성공의 절반입니다. 웹사이트 콘텐츠가 점점 더 복잡해지면서, 모든 정보를 “기사”나 “페이지”에 무작위로 담아넣는 것은 많은 문제를 초래합니다.

UltaHost의 WordPress 호스팅 서비스
30일 환불 보장, 무제한 대역폭 및 데이터베이스 이용, 무료 DDoS 보호 서비스 제공. 3년 구매 시 50% 용량이 할인됩니다.

먼저, 관리 및 유지보수의 편리성이 있습니다. 모든 콘텐츠가 서로 섞여 있을 때는 웹사이트 관리자가 특정 항목을 찾거나 대량 작업을 수행하는 것이 매우 불편합니다. 예를 들어, “이벤트’라는 콘텐츠 유형은 ”이벤트 날짜“, ”이벤트 장소“, ”등록 링크’와 같은 고유한 필드를 가질 수 있는데, 이러한 필드들을 일반 블로그 글과 함께 관리하는 것은 분명히 혼란을 야기합니다. 각 콘텐츠 유형에 대해 별도의 CPT(콘텐츠 유형 페이지)를 만들면, 해당 콘텐츠에 맞는 전용 게시, 편집, 필터링 인터페이스를 사용할 수 있어 백엔드 작업의 효율성을 크게 향상시킬 수 있습니다.

다음으로는 데이터 구조의 명확성과 확장성입니다. WordPress의 글과 페이지는 일반적인 데이터 테이블과 필드를 사용합니다. 반면에 CPT(컨텐츠 유형 플러그인, Content Type Plugins)를 사용하면 특정 유형의 콘텐츠에 맞는 전용 필드를 정의할 수 있습니다(커스텀 필드나 고급 커스텀 필드 플러그인을 통해). 이러한 데이터는 더 효율적으로 저장, 조회, 사용될 수 있습니다. 예를 들어, “영화” CPT에는 “감독”, “상영 시간”, “평점”과 같은 필드가 포함될 수 있는데, 이러한 정보는 기본적인 “글” 형식에서는 효과적으로 구조화하여 저장할 수 없습니다.

또 다른 중요한 점은 프론트엔드 디스플레이의 유연성입니다. 다양한 CPT(컨텐츠 제공 유닛)에 대해 개별적인 템플릿 파일을 생성함으로써… single-{cpt-slug}.php 그리고 archive-{cpt-slug}.php), 당신은 프론트엔드에서 이들의 표시 스타일을 완전히 제어할 수 있으며, 웹사이트의 다른 부분과는 확연히 다른 디자인 효과를 구현할 수 있습니다. 단일 템플릿을 수정하기 위해 복잡한 조건 판단을 사용할 필요가 없습니다.

마지막으로 성능 및 쿼리 최적화에 대해 이야기하겠습니다. 데이터베이스 쿼리를 실행할 때, 특정 CPT(컨텐츠 유형)에 대한 쿼리(예: 진행 중인 모든 “이벤트”를 조회하는 쿼리)는 모든 유형의 콘텐츠가 포함된 대형 테이블에서 필터링을 수행하는 것보다 훨씬 효율적입니다. 이는 웹사이트의 로딩 속도와 전반적인 성능을 향상시키는 데 도움이 됩니다. 이는 WordPress 웹사이트의 전문성과 성능을 아키텍처 수준에서 향상시키는 최선의 방법 중 하나입니다.

추천 읽기 웹사이트 구축의 완벽한 가이드: 제로에서 시작하여 전문적인 웹사이트를 만드는 전체 과정과 핵심 단계

How to create a custom article type

CPT(Conversion Tracking Pixel)를 생성하는 데에는 주로 두 가지 주류 방법이 있습니다: 코드를 직접 작성하여 등록하는 방법과 전용 플러그인을 사용하는 방법입니다.

코드를 사용하여 등록하기 (권장하는 방법)

개발자에게 있어서는 코드를 통해 테마를 제어하고 수정하는 것이 매우 중요합니다. 이를 통해 원하는 대로 웹사이트의 디자인과 기능을 자유롭게 변경할 수 있습니다. functions.php 파일에 CPT(컨텐츠 유형 플러그인)를 등록하는 것이 가장 투명하고 제어가 용이한 방법입니다. 이 방법은 WordPress가 제공하는 기능을 활용합니다. register_post_type() 이 방법은 기능을 특정 주제나 사용자 정의 플러그인에 바인딩하여 마이그레이션이 용이하며, 플러그인이 비활성화되어도 데이터가 손실되지 않습니다.

다음은 “작품집(Portfolio)”이라는 이름의 CPT(컨텐츠 템플릿)를 생성하는 완전한 예제 코드입니다:

호스팅닷컴 공유 호스팅
AMD EPYC CPU, NVMe SSD 스토리지 및 LiteSpeed를 통한 고성능, 연중무휴 24시간 전문가 사내 지원, SSL, 무차별 공격, 멀웨어 및 DDoS 보호를 포함한 고급 보안 조치, 최대 73%의 비용 절감.
function create_portfolio_post_type() {
    $labels = array(
        'name'               => '作品集',
        'singular_name'      => '作品',
        'menu_name'          => '作品集',
        'add_new'            => '添加新作品',
        'add_new_item'       => '添加新作品',
        'edit_item'          => '编辑作品',
        'new_item'           => '新作品',
        'view_item'          => '查看作品',
        'search_items'       => '搜索作品',
        'not_found'          => '未找到作品',
        'not_found_in_trash' => '回收站中未找到作品'
    );

$args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'portfolio' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'menu_icon'          => 'dashicons-format-gallery',
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt' )
    );

register_post_type( 'portfolio', $args );
}
add_action( 'init', 'create_portfolio_post_type' );

이 코드는 $labels 배열은 백엔드 인터페이스에 표시될 텍스트를 정의하는 데 사용됩니다. $args 배열은 CPT(Custom Product Type)의 동작 특성을 정의합니다. 예를 들어, 공개적으로 접근할 수 있는지, URL 리디렉션 규칙은 어떤지 등을 결정합니다.slug 설정하기 portfolio), 지원되는 기능들(제목, 편집기, 특별한 이미지 등)과 백엔드 메뉴 아이콘들도 포함됩니다. 마지막으로… add_action() 후크(Hook)는 WordPress가 초기화될 때 등록된 함수를 실행하는 메커니즘입니다.

플러그인을 사용하여 생성합니다.

코드에 익숙하지 않은 사용자들은 플러그인을 사용하여 CPT(커스텀 포스트 타입, Custom Post Type)를 빠르게 생성하고 관리할 수 있습니다. Custom Post Type UI나 Toolset Types와 같은 인기 있는 플러그인들은 직관적인 사용자 인터페이스를 제공하며, 태그, 매개변수, 심지어 사용자 정의 분류 체계까지 포함한 CPT의 모든 설정을 클릭 몇 번만으로 쉽게 구성할 수 있게 해줍니다.

플러그인 방식의 장점은 학습 곡선이 가파르지 않고 코드를 직접 다룰 필요가 없다는 점입니다. 하지만 단점은 기능과 성능이 플러그인에 전적으로 의존한다는 것입니다. 만약 플러그인의 업데이트가 중단되거나 WordPress 코어 버전과 호환되지 않게 되면 문제가 발생할 수 있습니다. 또한, 웹사이트의 기능 로직이 플러그인에 분산되어 있어 코드의 장기적인 유지보수와 이전이 어렵습니다. 따라서 빠른 프로토타이핑 단계나 비핵심 프로젝트에서 사용하는 것이 권장됩니다.

추천 읽기 웹사이트 제작 초보자를 위한 필독 가이드: 제로에서 프로페셔널 웹사이트를 만드는 완전한 과정

커스텀 문서 유형을 위한 템플릿을 생성합니다.

단순히 백엔드에서 CPT(Custom Post Type)를 생성하는 것만으로는 충분하지 않습니다. 해당 콘텐츠를 프론트엔드에서 원하는 방식으로 표시하려면, CPT에 맞는 테마 템플릿 파일을 생성해야 합니다. WordPress는 특정한 템플릿 계층 구조를 따라 이러한 파일들을 찾아서 사용합니다.

“작품집(CPT)”을 완전히 제어하기 위해서는 적어도 두 개의 템플릿 파일을 생성해야 합니다.

InterServer 공유 호스팅
공유 호스팅 월 $2.50 USD, 첫 달 $0.1 USD 프로모션 코드 tryinterserver, 461개 클라우드 앱 스크립트, 원클릭 설치.

1. 아카이브 페이지 템플릿: 모든 작품 목록을 표시하는 데 사용됩니다. 이 파일의 이름을 다음과 같이 지정하세요: archive-portfolio.php 그리고 해당 파일을 주제 디렉터리에 넣으세요. WordPress에서 해당 파일에 접근할 수 있도록 해야 합니다. yoursite.com/portfolio/ 이 템플릿이 우선적으로 사용됩니다. 여기서 원하는 내용을 자유롭게 사용할 수 있습니다. WP_Query 또는 메인 루프를 사용하여 모든 “작품집” 유형의 글을 가져와 출력할 수 있습니다.

2. 단일 글 템플릿: 단일 작품의 상세 정보 페이지를 표시하는 데 사용됩니다. 이 파일의 이름을 다음과 같이 지정하세요: single-portfolio.php. When accessing yoursite.com/portfolio/your-work/ WordPress가 이 템플릿을 사용할 때, 사용자는 그 내부 레이아웃을 자유롭게 디자인할 수 있으며, 이 CPT(커스텀 포스트 타입)에 정의된 사용자 정의 필드들을 활용할 수 있습니다.

다음은… archive-portfolio.php 기본 구조의 예시:

<section class="portfolio-archive">
    <h1>우리의 작품</h1>
    <div class="portfolio-items">
        만일 게시물이 있다면 : while ( have_posts() ) : the_post(); ?&gt;
            <article class="portfolio-item">
                <a href="/ko/</?php the_permalink(); ?>">
                    
                    <h2></h2>
                </a>
                <p></p>
            </article>
        
    </div>
    <?php the_posts_pagination(); ?>
</section>

이러한 전용 템플릿을 만들면, CPT 콘텐츠는 독립적인 “스킨”을 갖게 되어 웹사이트의 다른 부분들과 완벽하게 어우러지면서도 자신만의 개성을 나타낼 수 있습니다.

고급 기능 및 모범 사례 (Advanced Features and Best Practices)

CPT를 성공적으로 등록하고 표시한 후에는 몇 가지 고급 기능과 모범 사례를 활용하여 CPT를 더욱 최적화할 수 있습니다.

Associate with a custom taxonomy

마치 “기사”에 “분류 목록”과 “태그”가 있는 것처럼, 여러분의 CPT(Custom Product Type)도 자체적인 분류 시스템을 가질 수 있습니다. 예를 들어, “작품집”에 대한 “프로젝트 유형” 분류법을 만들 수 있습니다. register_taxonomy() 함수를 사용하면 작품들을 “웹 디자인”, “브랜드 디자인”, “UI/UX” 등의 카테고리로 분류할 수 있어, 프론트엔드에서의 필터링과 백엔드에서의 관리가 더 용이해집니다.

고급 사용자 정의 필드를 사용하기

WordPress의 기본 글쓰기 도구는 복잡한 데이터의 입력을 위한 기능을 제공하지 않습니다. Advanced Custom Fields(ACF)나 Meta Box와 같은 플러그인을 사용하면, 이미지 갤러리, 선택기, 관련 글목록, 날짜 선택기 등과 같은 직관적인 필드 그룹을 쉽게 생성할 수 있습니다. 이를 통해 기존의 단순한 글 작성 도구를 기능이 풍부한 데이터 입력 시스템으로 업그레이드할 수 있습니다.

재작성 규칙 및 고정 링크

CPT를 등록할 때 설정한 정보입니다. rewrite 파라미터는 해당 URL 구조에 영향을 미칩니다. CPT(컨텐츠 템플릿)를 생성한 후에는 반드시 WordPress 관리자의 “설정” -> “고정 링크” 페이지로 이동하여 “변경사항 저장” 버튼을 한 번 클릭하여 재작성 규칙을 즉시 업데이트하세요. 이를 통해 새로운 URL 구조가 정상적으로 적용됩니다.

성능 고려사항 (Performance Considerations)

CPT(Commercial Product Template)에 불필요한 기능 지원(예: 댓글, 인용 기능 등)을 등록하는 것을 피하세요. 기능들을 합리적으로 사용하십시오. WP_Queryposts_per_page 캐싱 메커니즘, 특히 목록 페이지에서 대량의 CPT 항목을 조회할 때 매우 중요합니다. 매우 복잡한 연관 쿼리의 경우, Transients API를 사용하여 캐싱을 고려해 보세요.

분리 기능 코드 (Separate Function Code)

생산 환경에서는 CPT(커스텀 템플릿)를 생성하는 코드를 템플릿 파일에서 분리하여 별도의 파일에 저장하는 것을 강력히 권장합니다. 이렇게 하면 템플릿 파일을 더 쉽게 관리하고 업데이트할 수 있으며, 템플릿의 구조가 복잡해질 경우에도 functions.php CPT(커스텀 포티닝 템플릿)를 기존 템플릿에서 분리하여 별도의 “커스텀 기능 플러그인”에 넣는 것이 좋습니다. 이렇게 하면 나중에 템플릿을 바꾸더라도 CPT 정의가 그대로 유지되어 데이터가 손실되지 않으며, 기능과 디자인의 분리가 가능해집니다.

요약

커스텀 문서 유형(Custom Post Types, CPT)은 WordPress의 강력한 콘텐츠 관리 기능을 활용하는 데 있어 핵심적인 역할을 합니다. CPT를 사용하면 다양한 유형의 콘텐츠에 맞는 독립적인 데이터 구조와 표시 로직을 만들 수 있으며, 이를 통해 WordPress를 단순한 블로그 플랫폼에서 기능이 완벽한 콘텐츠 관리 시스템으로 업그레이드할 수 있습니다. 포트폴리오를 구축하거나, 제품 카탈로그를 관리하거나, 이벤트 목록을 표시하거나, 보다 복잡한 애플리케이션을 개발하고자 하는 경우에도 CPT는 명확하고 효율적이며 유지보수가 용이한 솔루션을 제공합니다.

코드를 통해 등록하거나 플러그인을 사용하여 기능을 추가하는 것부터, 전용 템플릿 파일을 디자인하는 것, 그리고 사용자 정의 분류 체계와 고급 필드를 활용하여 기능을 확장하는 것에 이르기까지, CPT(Custom Post Type)를 제대로 활용하는 것은 WordPress를 더 전문적이고 유연하게 사용할 수 있음을 의미합니다. 기능 코드를 테마와 분리하는 최선의 관행을 따르면 웹사이트의 구조가 장기적으로 유지보수가 용이하고 안정적으로 유지되어 향후의 발전을 위한 탄탄한 기반을 마련할 수 있습니다.

자주 묻는 질문

커스텀된 글 유형(Custom article types)이 웹사이트의 속도에 영향을 미칠 수 있나요?

커스텀 문서 유형을 합리적으로 생성하고 사용하는 것 자체가 웹사이트의 속도에 부정적인 영향을 미치지는 않습니다. 오히려 콘텐츠를 분류함으로써 더 정확하고 효율적인 데이터베이스 쿼리가 가능해지며, 이는 특정 페이지의 로딩 속도를 향상시킬 수 있습니다.

속도에 영향을 미치는 요인들은 일반적으로 CPT(컨텐츠 템플릿 프레임워크)용으로 작성된 템플릿 파일 내의 쿼리 복잡도, 최적화되지 않은 이미지들의 대량 로딩, 또는 캐싱이 이루어지지 않은 복잡한 연관 쿼리의 사용에 있습니다. WordPress의 성능 최적화 사례를 따르는 것이 웹사이트 속도를 유지하는 데 핵심입니다. 예를 들어, 쿼리 수를 제어하고, 페이지 나누기(pagination)를 사용하며, 객체 캐싱(object caching)을 활성화하는 것이 그러한 방법들입니다.

만약 제가 사용자 정의된 기사 유형을 삭제하면, 그 안에 있는 기사들도 함께 삭제될까요?

이것은 삭제하는 방법에 따라 달라집니다. 만약 단순히 코드에서 CPT(컨텐츠 유형)를 등록하는 관련 코드를 주석 처리했거나, CPT를 생성하는 플러그인의 기능을 비활성화했다면, 백엔드에서는 해당 CPT에 대한 관리 메뉴를 볼 수 없을 것입니다. 하지만 그 기사 데이터들은 여전히 WordPress에 남아 있을 것입니다. wp_posts In the database table, only… post_type 필드 값(예: “portfolio”)은 더 이상 WordPress 코어에서 유효한 공개 유형으로 인식되지 않습니다.

이 경우, 코드를 수정하여 동일한 이름의 CPT(Custom Post Type)를 다시 등록함으로써 접근을 복구할 수 있습니다. 극단적인 상황에서는 데이터베이스 쿼리를 통해 해당 글들을 수동으로 처리하는 방법도 있습니다. post_type “post” 또는 “page”로 수정하세요. 중요한 경고입니다: 중대한 구조적 변경(예: CPT를 영구적으로 삭제하는 경우)을 수행하기 전에 반드시 데이터베이스를 백업하시기 바랍니다.

커스텀 문서 유형에 커스텀 필드를 추가하는 방법은 무엇인가요?

CPT(컨텐츠 템플릿)에 사용자 정의 필드를 추가하는 데에는 주로 두 가지 주류 방법이 있습니다. 첫 번째 방법은 WordPress에 내장된 “사용자 정의 필드” 패널을 사용하는 것입니다. 하지만 이 방법은 인터페이스가 단순하고 기능이 제한적이어서 복잡한 요구사항을 충족시키기에는 적합하지 않습니다. 두 번째이자 추천되는 방법은 Advanced Custom Fields(ACF)나 Meta Box와 같은 제3자 필드 관리 플러그인을 사용하는 것입니다.

이 플러그인들은 직관적인 인터페이스를 제공하여 필드 그룹(예: “제품 정보”)을 생성하고 이를 특정 CPT(예: “제품”)에 할당할 수 있게 해줍니다. 그러면 해당 CPT의 편집 페이지에서 이러한 사용자 친화적인 필드 입력란들을 확인할 수 있습니다. 프론트엔드 템플릿에서는 ACF(Advanced Custom Fields)와 같은 플러그인이 제공하는 함수들을 사용하여 필드를 효과적으로 관리할 수 있습니다. get_field()이러한 필드의 값을 쉽게 가져와 표시할 수 있습니다.

커스텀된 기사 유형(Custom Article Types)을 페이지 템플릿(Page Templates)과 함께 사용할 수 있나요?

네, 가능합니다. 하지만 이 두 가지는 서로 다른 기능이지만 결합될 수 있습니다. 페이지 템플릿은 개별 “페이지”의 레이아웃을 선택하는 데 사용되며, CPT(콘텐츠 유형 템플릿)는 전체 콘텐츠 유형의 표시 로직을 제어하는 데 사용됩니다. 특정 CPT에 속하는 특정 글을 위해 “페이지 템플릿”을 만들 수도 있습니다.

예를 들어, “회원” CPT(Contributor Profile Template)가 있으며, 이 CPT의 기본 템플릿은… single-member.php당신은 “”이라는 이름의 파일을 만들 수 있습니다. page-template-leadership.php 그 페이지 템플릿을 사용한 다음, WP_Query 특정 직책에 속한 “회원”들을 데이터베이스에서 조회한 후, 이 템플릿의 레이아웃을 사용하여 그들을 표시합니다. 백엔드에서는 “페이지” 메뉴를 통해 새로운 페이지를 생성한 다음, 해당 페이지에 이 사용자 정의 템플릿을 적용해야 합니다. 이는 WordPress 템플릿 시스템의 유연성을 잘 보여줍니다.