ワードプレスのregister_post_type関数の使用方法・解説

概要

register_post_type関数は、カスタム投稿タイプを登録するために使用されるWordPressの関数です。この関数を使用することにより、標準の投稿やページに加えて、特定の用途に応じた独自の投稿タイプを作成することができます。たとえば、イベント、商品、レビューなど、異なる種類のコンテンツを管理するために役立ちます。以下は、register_post_typeがよく使われる機能の例です。

  1. イベント情報の管理
  2. 商品カタログの作成
  3. レビュー投稿の管理
  4. ポートフォリオ作品の表示
  5. FAQセクションの作成
  6. チュートリアルやレッスンの管理
  7. 特定のメディアコンテンツの管理
  8. 独自のニュース記事の投稿

構文

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

パラメータ

  • $post_type: 登録する投稿タイプのスラッグ(ユニークな識別子)。
  • $args: 投稿タイプのオプションを指定する配列。

戻り値

この関数は特に戻り値はありませんが、成功した場合は指定したカスタム投稿タイプが登録されます。

関連する関数

使用可能なバージョン

この関数はWordPress 2.9.0以降で使用可能です。

コアファイルのパス

wp-includes/post.php

サンプルコード

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

function create_event_post_type() {
    register_post_type('event',
        array(
            'labels' => array(
                'name' => __('Events'),
                'singular_name' => __('Event')
            ),
            'public' => true,
            'has_archive' => true,
        )
    );
}
add_action('init', 'create_event_post_type');

このサンプルコードは、eventというカスタム投稿タイプを登録しています。一般的なイベント情報を管理するのに適しています。

サンプル2: カスタム投稿タイプにメタボックスを追加

function add_event_meta_boxes() {
    add_meta_box('event_date', 'Event Date', 'event_date_callback', 'event');
}

function event_date_callback($post) {
    // メタボックスの表示処理
}

add_action('add_meta_boxes', 'add_event_meta_boxes');

このコードは、event投稿タイプに「Event Date」というメタボックスを追加します。イベントの日付を登録するためのカスタムフィールドを表示します。

サンプル3: カスタム投稿タイプのサポート機能を追加

function create_portfolio_post_type() {
    register_post_type('portfolio',
        array(
            'labels' => array(
                'name' => __('Portfolio'),
                'singular_name' => __('Portfolio Item')
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
        )
    );
}
add_action('init', 'create_portfolio_post_type');

このサンプルでは、portfolioというカスタム投稿タイプを登録し、タイトル、エディター、サムネイル、カスタムフィールドをサポートするように設定しています。

サンプル4: カスタム投稿タイプにリライトルールを追加

function create_review_post_type() {
    register_post_type('review',
        array(
            'labels' => array(
                'name' => __('Reviews'),
                'singular_name' => __('Review')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'reviews'),
        )
    );
}
add_action('init', 'create_review_post_type');

このコードは、reviewというカスタム投稿タイプを登録し、リライトルールを設定して、URLスラッグを「reviews」に指定しています。

サンプル5: カスタム投稿タイプの表示順を変更

function custom_order_events($query) {
    if (!is_admin() && $query->is_post_type_archive('event')) {
        $query->set('orderby', 'date');
        $query->set('order', 'ASC');
    }
    return $query;
}
add_action('pre_get_posts', 'custom_order_events');

このサンプルでは、カスタム投稿タイプeventのアーカイブページの表示順を日付の昇順に設定しています。

この関数のアクションでの使用可能性

アクション名 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

この関数は、以下のバージョンで非推奨または削除されたことはありません。

この関数について質問する


上の計算式の答えを入力してください