カスタム投稿タイプで記事を作るときに、記事毎に個別ページが必要ない場合があります。
例えば、
- アーカイブページに記事一覧だけ必要
- TOPページに一覧だけ表示したい
- ロゴ一覧をカスタム投稿タイプで管理したい
そんな場合の対応方法です。
解決方法
register_post_type( 'custom_post_name',
array(
'labels' => array(
'name' => __( 'カスタム投稿名' ),
'singular_name' => __( 'カスタム投稿名' )
),
'menu_icon' => 'dashicons-feedback',
'supports' => array(
'title', 'editor', 'thumbnail'
),
'public' => false,
'show_ui' => true,
'menu_position' =>5,
'has_archive' => true
)
);
上記コードは、カスタム投稿タイプの設定になります。function.php とかに書くやつです。
大事なのは、'public' => false
'show_ui' => true
の箇所。
個別ページは作らないけど、管理画面にUIは表示してね、と指定しています。
パーマリンク非表示
「Wordpress 個別ページ パーマリンク 非表示」とかで検索すると、管理画面上でstyleを編集してパーマリンクを非表示にする方法を紹介しているサイトもありますが、そちらは個別ページ自体は作られているので本来の目的とは異なります。
注意点
カスタムフィールドの作成に「Custom Field Suite」を使用している場合は少し注意が必要です。
フィールドの種類に「関連」がありますが、関連に指定する投稿タイプは 'public' => false を指定すると表示されません。一度、 'public' => true の状態で投稿タイプ指定した後に 'public' => false に変更するとうまくいくようです。
ちなみに「Advanced Cutom Fields」の「関連」では特に問題ありませんでした。