WordPress カスタム投稿タイプの追加方法
カスタム投稿タイプについて
WordPressを使用している皆さん、今のコンテンツ以外に、別のコンテンツを追加したいと思ったことはありませんか?
例えば、個人サイトであれば、ブログと別に自分でデザインした作品を公開したい、
メーカー用のサイトであれば、新着情報と別に製品情報を公開したい、
など、
このように1つのサイトで性質が異なる複数のコンテンツを公開したい場合、
WordPressの「カスタム投稿タイプ」を使うと便利です。
この機能を使うと、従来の投稿と同じように、自分の好きなコンテンツ(投稿タイプ)を追加して公開することができます。
今回は、この「カスタム投稿タイプ」の追加方法をご紹介します。
カスタム投稿タイプ追加方法
カスタム投稿タイプを追加すると、WordPressの管理画面にカスタム投稿タイプのメニューが追加されます。
※私は、「ポートフォリオ」というカスタム投稿タイプを追加しました。
それでは、早速「カスタム投稿タイプ」の追加方法をご説明します。
register_post_type関数で追加
カスタム投稿タイプを追加したい場合は、register_post_type関数を使います。
functions.phpに以下の処理を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
//ポートフォリオカスタム投稿タイプを追加 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という関数を実行する処理となります。
1 2 3 4 5 6 |
//ポートフォリオカスタムページ パーマリンクを動作させるための処理 function my_rewrite_flush() { add_portfolio_type(); flush_rewrite_rules(); } add_action('after_switch_theme', 'my_rewrite_flush'); |
最後に
以上の設定で、カスタム投稿タイプを追加することができます。
カスタム投稿タイプが設定できると、異なるコンテンツを簡単に管理することができ非常に便利です。
みなさんも是非お試しください!
では!
スポンサーリンク