WordPressでプラグインを使わずにカスタム投稿タイプを作る方法

2025.07.07

下記のようなコードをfunction.phpに記述するだけ!
これをするだけで管理画面上のサイドバーに表示されます。

/* -------------------------- カスタム投稿タイプを作る  ------------------------- */
// カスタム投稿タイプ「notice」を定義
function create_post_type() {
  register_post_type(
    'notice', // 投稿タイプの識別子。URLにも使用されるスラッグです(例: https://example.com/notice)
    array(
      'labels' => array(
        'name' => __('テストお知らせ'), // 管理画面の一覧やメニューに表示される名前(複数形)
        'singular_name' => __('テストお知らせ'), // 投稿の個別編集画面などに表示される名前(単数形)
      ),
      'rewrite' => array(
        'slug' => 'notice', // 投稿タイプのURLスラッグ(例: /notice/)
        'with_front' => true // true の場合、パーマリンク設定で先頭に「/blog」などがあれば継承されます
      ),
      'menu_icon' => 'dashicons-megaphone', // 管理画面サイドメニューのアイコン(WordPressの標準アイコン)
      'public' => true, // 投稿タイプを公開状態にする(フロントでも表示可能)
      'show_ui' => true, // 管理画面のUIを表示するか(true で表示される)
      'has_archive' => true, // アーカイブページ(一覧ページ)を有効にする(例: https://example.com/notice/)
      'menu_position' => 10, // 管理画面サイドメニュー内の表示順(10は「投稿」の下あたり)
      'hierarchical' => true, // 階層構造を持たせる(固定ページのように親子関係を設定可能)

      'taxonomies' => array('category', 'post_tag'), // カテゴリーとタグをこの投稿タイプで使えるようにする

      'supports' => array(
        'title',           // タイトル入力欄を有効にする
        'editor',          // 本文エディター(ビジュアル/テキスト)を有効にする
        'revisions',       // 過去の変更履歴(リビジョン)を有効にする
        'page-attributes', // 並び順や親子関係(階層構造)を管理できる機能を有効にする
        'thumbnail',       // アイキャッチ画像(サムネイル)を設定できるようにする
        'excerpt'          // 抜粋欄を表示して入力可能にする
      ),
    )
  );
}
add_action('init', 'create_post_type'); // WordPress の初期化時に上記関数を実行して投稿タイプを登録
totop Page Top