WordPressで企業サイトやWEBサイトを構築する上で便利なカスタム投稿タイプですが、カスタム投稿タイプの投稿記事にも固定ページと同じように「親子関係」を持たせることができます。
方法は、プラグインを「利用しない」場合と「利用する」場合の2種類ありますので、今回は「functions.php でカスタム投稿タイプを動かす場合」と「Types プラグインを利用する場合」で、カスタム投稿タイプの記事に親子関係を持たせる方法を紹介させていただきます。
(1)functions.php でカスタム投稿タイプを動かす場合
functions.php内の記述で、hierarchicalをtrueにします。
1 2 3 |
$args = array( 'hierarchical' => true ); |
※hierarchicalは「階層」と訳されます。
全体としては以下のような感じになります。
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 31 32 33 34 |
<?php //カスタム投稿タイプ add_action('init', 'my_custom_init'); function my_custom_init() { $labels = array( 'name' => _x('カスタム投稿タイプ', 'post type general name'), 'singular_name' => _x('カスタム投稿タイプ', 'post type singular name'), 'add_new' => _x('新規投稿', 'sample'), 'add_new_item' => __('記事を書く'), 'edit_item' => __('記事を編集'), 'new_item' => __('新しい記事'), 'view_item' => __('記事を見る'), 'search_items' => __('記事を探す'), 'not_found' => __('記事はありません'), 'not_found_in_trash' => __('ゴミ箱に記事はありません'), 'parent_item_colon' => '' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => true, 'menu_position' => 5, 'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes'), 'has_archive' => true ); register_post_type('sample',$args); } ?> |
(2)Types プラグインを利用する場合
続いて、Typesプラグインを利用する場合です。新規にカスタム投稿タイプを作成すると、初期状態では「階層」にチェックが入っていないので、「階層」にチェックを入れることで、記事に親子関係を持たせることができます。
「セクションを表示」欄の「ページの特性」にもチェックを入れておきます。
新規で記事を書く場合、記事が1件もない(親記事が存在しない)ため、投稿画面右側の「属性」欄には何も表示されません。
2件目以降の記事を投稿すると、投稿画面右側の「属性」欄に記事を選択するフォームが出現しますので、「親」にする記事をセレクタから選択できるようになります。
※記事が「下書き」になっていると、親記事の候補には出てきません。
記事一覧ページでは、親子関係になっているのが分かります。
カスタム投稿タイプを動かすプラグインは、Typesの他にも Custom Post Type UIなどがありますが、Custom Post Type UIを使って記事に親子関係を持たせる方法は、改めて紹介させていただきます。
コメント