本記事では、WordPressのfunctions.phpファイル内でregister_post_type関数を実行してもカスタム投稿タイプが追加されない時の対処法について解説しています。
WordPressの学習におすすめ書籍
1冊ですべて身につくWordPress入門講座
メリット
- サイト運営に必須のことが学べる
- 基本的な使い方~オリジナルテーマ開発まで学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)


目次
initアクションを使用する
register_post_type関数を使用する時は、必ずinitアクションの中で呼び出す必要があります。もし、initアクションより前に呼び出すと正常に動作しません。
function register_custom_post_type()
{
register_post_type();
}
add_action('init', 'register_custom_post_type');
publicをtrueに指定する
register_post_type関数のデフォルトでは、新しく追加したカスタム投稿タイプはWordPressの管理画面に表示されない設定になっています。
これを解消するには、「public」のキーに対して「true」の値を指定する必要があります。
function register_custom_post_type()
{
register_post_type('news', [
'labels' => [
'name' => 'ニュース',
],
'public' => true,
'menu_position' => 5
]);
}
add_action('init', 'register_custom_post_type');
補足
「public」のキーに対して「true」の値を指定した場合、以下の4つが自動的に適用されます。
exclude_from_search: false // サイト内検索の対象になる
publicly_queriable: true // 詳細記事、記事一覧を生成する
show_ui: true // 管理画面に登録したカスタム投稿タイプが表示される
show_in_nav_menus: true // ナビゲーションメニューで登録したカスタム投稿タイプを選択可能にする
一部機能のみ使用したい場合は、publicをtrueにするのではなく各キーに対してtrue/falseを指定しましょう。