WordPressのカスタム投稿タイプの作成と表示
カスタム投稿タイプの作成と表示方法です。
カスタム投稿タイプを使うようにするにはregister_post_type()タグを使います。
カスタム投稿タイプの作成
<?php register_post_type( $post_type, $args ) ?>
$post_typeには投稿タイプの名前が入ります。 $argsに配列で細かい設定を入れて行きます。
function.phpに下記のように記入すると、ダッシュボードに”テクスチャ”という項目が追加されてカスタム投稿ができるようになります。これは最低限のコードです。
register_post_type( 'texture', array( 'label' => 'テクスチャ', 'public' => true, ) );
‘label’にはダッシュボードで表示される名前を入れます。
‘public’ => true にすると以下の値を設定した事になります。
'show_ui' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_in_nav_menus' => true,
‘show_ui’
ダッシュボードでこの投稿タイプのユーザーインターフェースを表示する(true)。
‘publicly_queryable’
フロントエンドで post_type クエリが実行可能かどうか-投稿でもページでも出力できる(true)
‘exclude_from_search’
カスタム投稿タイプの記事を検索結果に含める(false)、含めない場合がtrue
‘show_in_nav_menus’
カスタム投稿タイプの記事をカスタムメニューで選択できるようにする(true)
上記の最低限のコードに配列で値を追加する事で機能を色々追加できます。
その他の値は下記を参照。
Function Reference/register post type
関数リファレンス/register post type
投稿画面で表示されるメタボックスを指定する
‘supports’ではカスタム投稿画面で表示されるメタボックスを指定できます。デフォルトはタイトルとエディターのみ。配列で記入します。’supports’ に指定できるものは以下のパラメータです。
'title' タイトル 'editor' (content) 本文 'author' 作成者 'thumbnail' アイキャッチ 'excerpt' 抜粋 'trackbacks' トラックバック 'custom-fields' カスタムフィールド 'comments' コメント一覧。(編集画面でコメント数バルーンが見える) 'revisions' リビジョンを保存する 'page-attributes' 親と子の順序指定 (hierarchical が true であることが必要)
カスタム投稿タイプの内容を表示する
カスタム投稿タイプの内容をテンプレートに表示するにはquery_posts()等を使って情報を取得します。textureという名前のカスタム投稿タイプの投稿内容を5件取得して表示するには、表示したいテンプレートへ下記のように記入します。
<?php query_posts( array( 'post_type'=>'texture', 'posts_per_page' => 5, 'paged' => get_query_var('paged') ) ); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php content(); ?> <?php endwhile; endif; ?>
‘post_type’=>’texture’で投稿タイプの名前を入れます。
query_posts()ついてはテンプレートタグ/query posts – WordPress Codex 日本語版を参照。
カスタム投稿タイプの個別ページについて
カスタム投稿タイプの投稿個別ページはsingle.phpで生成されます。カスタム投稿タイプ用のテンプレートを用意する場合はファイル名を”single-投稿タイプ名.php”とします。’texture’という名前の投稿タイプのテンプレートなら”single-texture.php”になります。
投稿内容の出力方法は通常の投稿と同じです。
カスタム投稿タイプの名前を付ける時の注意点
•デフォルトで存在する”post”, “page”, “revision”, “attachment” ,”nav_menu_item” の名前は使えない。
•将来的に必要となるプラグインで定義されるカスタム投稿と衝突する可能性があるので、 “名前空間” を接頭辞に付けるなど、名前が将来的にかぶらない工夫が必要。
•名前の長さは最大 20 文字まで。
•”wp_” で始まる名前で、今後デフォルトの投稿タイプが増える可能性があるので、”wp_” で始まる名前のカスタム投稿タイプは避けたほうが良い。
1 Comments & Tracbacks