WordPressで「ブログ記事」とは別に、ポートフォリオやお知らせなど独立したコンテンツを表示したいと感じたことはありませんか?そんなときに役立つのが「カスタム投稿タイプ」です。
この記事では、初心者の方でも実践できるように、カスタム投稿タイプの基礎から作成方法(プラグイン・コード両方)までをわかりやすく解説します。
カスタム投稿タイプとは?
通常の投稿・固定ページとの違い
WordPressには標準で「投稿」と「固定ページ」があります。
投稿タイプ | 用途 | タグ/カテゴリ | 投稿日付 |
---|---|---|---|
投稿 | ブログ記事 | ◯ | ◯ |
固定ページ | サイト内の情報(会社概要など) | × | × |
カスタム投稿タイプ | 自由に定義可能(例:制作実績、お知らせ) | ◯ / × | ◯ / × |
カスタム投稿を使うメリット
- コンテンツを整理しやすくなる
- 投稿タイプごとにデザインを変えられる
- サイトの運用が効率化する
プラグイン「Custom Post Type UI」で作る方法
インストール~設定までの手順
- 管理画面から「Custom Post Type UI」をインストール
- 「CPT UI」>「投稿タイプの追加」から新しい投稿タイプを登録
- 投稿タイプスラッグ:news
- ラベル:お知らせ
- オプション設定で、アーカイブの有無やメニューアイコンを設定
投稿画面に表示される内容のカスタマイズ
- タイトル、本文、アイキャッチ画像など、必要な項目にチェックを入れることで柔軟にカスタマイズできます。
- カスタムフィールドを利用したい場合は、別途プラグイン(Advanced Custom Fields など)との併用が便利です。
functions.phpを使って自作する方法
基本構文と実装例
子テーマの functions.php に以下のようなコードを記述します:
function create_post_type_news() {
register_post_type('news', [
'labels' => [
'name' => 'お知らせ',
'singular_name' => 'お知らせ'
],
'public' => true,
'has_archive' => true,
'menu_position' => 5,
'supports' => ['title', 'editor', 'thumbnail'],
'menu_icon' => 'dashicons-megaphone',
]);
}
add_action('init', 'create_post_type_news');
タクソノミー(カテゴリなど)の追加
register_taxonomy('news_category', 'news', [
'label' => 'お知らせカテゴリ',
'hierarchical' => true,
'public' => true,
]);
カスタム投稿を表示させるテンプレートの作成
single-〇〇.php や archive-〇〇.php を使う
例えば、投稿タイプ「news」の個別記事は single-news.php
、一覧表示は archive-news.php
で制御します。
カスタム投稿タイプのループを作る
カスタム投稿だけを表示するループは以下の通り:
$args = [
'post_type' => 'news',
'posts_per_page' => 5
];
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
// 表示内容
endwhile;
wp_reset_postdata();
endif;
まとめと次に読みたい記事
今回はカスタム投稿タイプの作成方法を、プラグインと手動コーディングの両方から解説しました。
次のステップとしておすすめなのは:
- カスタムフィールドの導入(Advanced Custom Fields)
- 投稿タイプごとのデザインを変える方法(テンプレートの活用)
これらを組み合わせれば、WordPressサイトをより柔軟かつプロフェッショナルに運用できます。