概要
register_post_type関数は、カスタム投稿タイプを登録するために使用されるWordPressの関数です。この関数を使用することにより、標準の投稿やページに加えて、特定の用途に応じた独自の投稿タイプを作成することができます。たとえば、イベント、商品、レビューなど、異なる種類のコンテンツを管理するために役立ちます。以下は、register_post_typeがよく使われる機能の例です。
- イベント情報の管理
- 商品カタログの作成
- レビュー投稿の管理
- ポートフォリオ作品の表示
- FAQセクションの作成
- チュートリアルやレッスンの管理
- 特定のメディアコンテンツの管理
- 独自のニュース記事の投稿
構文
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 |
この関数は、以下のバージョンで非推奨または削除されたことはありません。