WordPress カスタム投稿タイプの追加方法

カスタム投稿タイプについて
WordPressを使用している皆さん、今のコンテンツ以外に、別のコンテンツを追加したいと思ったことはありませんか?
例えば、個人サイトであれば、ブログと別に自分でデザインした作品を公開したい、
メーカー用のサイトであれば、新着情報と別に製品情報を公開したい、
など、
このように1つのサイトで性質が異なる複数のコンテンツを公開したい場合、
WordPressの「カスタム投稿タイプ」を使うと便利です。
この機能を使うと、従来の投稿と同じように、自分の好きなコンテンツ(投稿タイプ)を追加して公開することができます。
今回は、この「カスタム投稿タイプ」の追加方法をご紹介します。
カスタム投稿タイプ追加方法
カスタム投稿タイプを追加すると、WordPressの管理画面にカスタム投稿タイプのメニューが追加されます。
※私は、「ポートフォリオ」というカスタム投稿タイプを追加しました。

それでは、早速「カスタム投稿タイプ」の追加方法をご説明します。
register_post_type関数で追加
カスタム投稿タイプを追加したい場合は、register_post_type関数を使います。
functions.phpに以下の処理を追加します。
//ポートフォリオカスタム投稿タイプを追加
function add_portfolio_type() {
$args = array(
'label' => 'ポートフォリオ',
'labels' => array(
'all_items' => 'ポートフォリオ一覧',
'add_new_item' => '新規ポートフォリオを追加',
'new_item' => '新規ポートフォリオ',
'edit_item' => 'ポートフォリオを編集',
'view_item' => 'ポートフォリオを表示',
'search_items' => 'ポートフォリオを検索',
'not_found' => 'ポートフォリオが見つかりませんでした',
),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'menu_position' => 5,
'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'revision'),
'has_archive' => true,
);
register_post_type('portfolio', $args);
}
add_action('init', 'add_portfolio_type');
まず、カスタム投稿タイプのテンプレートを設定する関数を作ります。(2〜29行目)
私は、作品を公開するポートフォリオを作ったので、関数名は、add_portfolio_typeにしています。
labelやlabelsは、WordPress管理画面に表示されるラベルを設定します。
具体的なパラメータの説明は、以下をご参照ください。
関数リファレンス/register_post_type
各パラメータを設定したら、register_post_type関数を実行します。(28行目)
パラメータは2つです。1つ目は、カスタム投稿タイプに付ける名前を指定します。※半角英数字20文字以内で指定。
2つ目は、設定したパラメータの配列を指定します。
最後に、initアクションフックのタイミングで実行するように指定します。(30行目)
パーマリンクの設定
カスタム投稿タイプを追加する際に、パーマリンクも正しく動作するようにします。
functions.phpに以下のコードを追加します。
これは、after_switch_themeというアクションのタイミングで、カスタム投稿タイプの登録処理と、flush_rewrite_rulesという関数を実行する処理となります。
//ポートフォリオカスタムページ パーマリンクを動作させるための処理
function my_rewrite_flush() {
add_portfolio_type();
flush_rewrite_rules();
}
add_action('after_switch_theme', 'my_rewrite_flush');
最後に
以上の設定で、カスタム投稿タイプを追加することができます。
カスタム投稿タイプが設定できると、異なるコンテンツを簡単に管理することができ非常に便利です。
みなさんも是非お試しください!
では!

