register_post_type()


WordPressのregister_post_type()関数は、カスタム投稿タイプを登録するために使用されます。この関数を使用すると、ブログやウェブサイトに特化した投稿タイプを作成できます。

構文

register_post_type( string $post_type, array $args = array() );

引数の説明

  • $post_type (string) — 登録する投稿タイプの一意なスラッグ(小文字、英数字、アンダースコアのみ)。
  • $args (array) — 投稿タイプの設定を指定するための配列。

例1: 基本的なカスタム投稿タイプの登録

この例は、基本的な投稿タイプを登録します。

add_action( 'init', function() {
    register_post_type( 'book', array(
        'label' => 'Books',
        'public' => true,
        'supports' => array( 'title', 'editor', 'thumbnail' ),
    ) );
} );

例2: 管理画面で表示名をカスタマイズ

管理画面での表示名をカスタマイズします。

add_action( 'init', function() {
    register_post_type( 'movie', array(
        'labels' => array(
            'name' => 'Movies',
            'singular_name' => 'Movie',
        ),
        'public' => true,
    ) );
} );

例3: カスタム投稿タイプのアーカイブページを有効化

アーカイブページを有効にする設定。

add_action( 'init', function() {
    register_post_type( 'portfolio', array(
        'label' => 'Portfolio',
        'public' => true,
        'has_archive' => true,
    ) );
} );

例4: REST APIとの互換性

REST APIで使用可能な投稿タイプを登録します。

add_action( 'init', function() {
    register_post_type( 'event', array(
        'label' => 'Events',
        'public' => true,
        'show_in_rest' => true,
    ) );
} );

例5: 階層構造をサポートする投稿タイプ

親子関係をサポートする投稿タイプを登録します。

add_action( 'init', function() {
    register_post_type( 'faq', array(
        'label' => 'FAQs',
        'public' => true,
        'hierarchical' => true,
    ) );
} );

注意点

  • $post_typeは一意でなければなりません。
  • $argsの配列では、キーと値の正確な対応が必要です。
  • 登録後に投稿タイプを削除する場合は、データベース上のデータに注意してください。

関連機能: