WordPressでカスタム投稿タイプを作成する方法と活用例|functions.phpで簡単追加!

WordPressでサイト運営をしていると、「投稿」や「固定ページ」だけでは管理しきれない場面が出てきますよね。
たとえば、以下のようなケースに心当たりはありませんか?
- 「お知らせ」だけ一覧で表示したい
- 「商品」や「制作実績」など、独立した投稿管理をしたい
- 特定の投稿タイプにだけカスタムフィールドを使いたい
そんな時に便利なのが、カスタム投稿タイプ(Custom Post Type)です。
この記事では、functions.phpにコードを追加するだけでできるカスタム投稿タイプの作り方と、活用例をわかりやすく解説します。
Contents
カスタム投稿タイプとは?
カスタム投稿タイプとは、WordPressに元々備わっている「投稿(post)」や「固定ページ(page)」とは別に、独自の投稿形式を追加できる機能です。
具体的には、以下のような投稿タイプを追加することができます:
用途 | 投稿タイプ名 | 目的 |
---|---|---|
お知らせ | news | 最新情報や更新通知を管理 |
商品紹介 | product | 商品ごとの詳細ページを作成 |
実績・制作事例 | works | ポートフォリオとして使用 |
イベント情報 | event | 日時・会場などの管理が便利に |
カスタム投稿タイプの作成方法【functions.phpでOK】
基本のコード例
以下のコードを、使用中のテーマまたは子テーマの functions.php
に追記します。
function create_custom_post_type()
{
register_post_type('news', [
'labels' => [
'name' => 'ニュース',
'singular_name' => 'ニュース',
],
'public' => true,
'has_archive' => true,
'menu_position' => 5,
'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
'rewrite' => ['slug' => 'news'],
]);
}
add_action('init', 'create_custom_post_type');
コードの解説
'news'
:投稿タイプのスラッグ(管理上のIDのようなもの)'public' => true
:管理画面・サイト両方で利用可能'has_archive' => true
:アーカイブ一覧(例:/news/)を自動生成'supports'
:タイトル・本文・アイキャッチ・抜粋などの編集機能を有効化'rewrite' => ['slug' => 'news']
:URLの構造を/news/◯◯
にする
コードを保存した後は、「設定 → パーマリンク → 保存」を必ず実行してください。
これを行わないと、URLが 404 エラーになります。
カスタム投稿タイプの活用例
1. お知らせ一覧ページを作る
カスタム投稿タイプを追加すると、自動的に /news/
というアーカイブページが生成されます。
このページをカスタマイズしたい場合は、テーマフォルダに archive-news.php
を作成します。
<?php get_header(); ?>
<h1>ニュース一覧</h1>
<?php if (have_posts()): while (have_posts()): the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p><?php the_excerpt(); ?></p>
<?php endwhile; endif; ?>
<?php get_footer(); ?>
さらに、個別ページ用に single-news.php
を作れば、通常の投稿とは異なるデザインにすることも可能です。
2. カスタムタクソノミーと組み合わせる
カスタム投稿タイプは、独自のカテゴリやタグ(=カスタムタクソノミー)と組み合わせることで、分類機能も強化できます。
たとえば、商品投稿タイプに「ジャンル」や「ブランド」などの分類を追加可能です。
register_taxonomy('weather', 'news', [
'label' => '天気',
'hierarchical' => true,
'public' => true,
'rewrite' => ['slug' => 'weather'],
]);
3. トップページなどで最新情報として表示
トップページに「最新のお知らせ」を表示したい場合は、get_posts()
を使って以下のように呼び出します。
カスタム投稿タイプの注意点
- パーマリンク設定を保存し直す:追加直後は404になるため注意
- スラッグの命名には注意:
post
,page
などの予約語は使わない - 管理画面に表示されない場合:
show_ui
やshow_in_menu
を明示的に指定する必要あり
まとめ
カスタム投稿タイプを使うことで、WordPressサイトの構造をより柔軟に・直感的に設計できます。
特に中〜大規模なWebサイトや、複数のコンテンツ種別を扱う必要があるプロジェクトでは、「投稿」「固定ページ」だけでは限界があります。
ぜひ、自作テーマやクライアント案件に取り入れてみてください!