register_post_type()
は、カスタム投稿タイプを登録するためのWordPressのテンプレートタグです。投稿タイプを使うことで、ブログ記事以外のデータ(例:ポートフォリオ、製品情報など)を管理できるようになります。
目次
機能の説明
register_post_type()
を使うと、WordPressの管理画面に新しいカスタム投稿タイプを追加できます。これにより、ページや投稿とは異なるデータ構造を管理できます。
シンプルなコード例
function register_custom_post_type() {
register_post_type('product', array(
'label' => '製品',
'public' => true,
'has_archive' => true,
));
}
add_action('init', 'register_custom_post_type');
使い方の解説
register_post_type()
は通常、init
アクションにフックして使用します。これにより、WordPressが初期化される際に投稿タイプが正しく登録されます。
引数
- $post_type
-
登録するカスタム投稿タイプの名前。英小文字とアンダースコアのみ使用可能です。
- $args
-
投稿タイプの設定を格納する連想配列。表示設定やサポート機能などを含みます。
戻り値
- WP_Error | null
-
成功時は
null
、エラーが発生した場合はWP_Error
オブジェクトを返します。
オプション
- label
-
投稿タイプの名前を指定します。
- public
-
投稿タイプが公開されるかどうか(
true
またはfalse
)。 - has_archive
-
アーカイブページを有効にするかどうか。
- supports
-
タイトル、エディタ、サムネイルなどのサポート機能を指定します。
使用例
function register_event_post_type() {
register_post_type('event', array(
'labels' => array(
'name' => 'イベント',
'singular_name' => 'イベント',
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'events'),
'supports' => array('title', 'editor', 'thumbnail'),
));
}
add_action('init', 'register_event_post_type');
register_post_type()
:event
というカスタム投稿タイプを登録します。labels
配列: 投稿タイプの名前を指定しています。public
: 管理画面とフロントエンドに表示されるように設定。rewrite
: URLスラッグをevents
に変更。supports
: タイトル、エディタ、サムネイルのサポートを有効化。
一緒に使うことが多い関連タグ
add_action()
register_post_type()
を init
アクションにフックする際に使用します。
add_action('init', 'register_custom_post_type');
追加情報を取得したい場合
get_post_type() で現在の投稿タイプを取得
$post_type = get_post_type();
echo '現在の投稿タイプ: ' . $post_type;
出力できる情報
- name: 投稿タイプの名前
- slug: URL用のスラッグ
- public: 公開設定の有無
想定されるトラブル
投稿タイプが表示されない
public
を true
に設定していることを確認してください。
パーマリンクが機能しない
パーマリンク設定を保存して、URLを再生成してください。
Q&A
まとめ
register_post_type()
は、WordPressでカスタム投稿タイプを登録するための強力な関数です。
これにより、ブログ記事以外のコンテンツを柔軟に管理できます。正しい使い方を理解することで、テーマやプラグインの開発がより豊かなものになります。
コメント