WordPressのカスタム投稿の作り方

WordPressカスタム投稿とは
WordPressにおけるカスタム投稿タイプとは、ブログ投稿や固定ページとは別に、独自のコンテンツタイプを作成できる機能のことです。これにより、目的に応じた特定の種類のコンテンツを管理・表示できます。
なぜカスタム投稿タイプが必要なのか?
たとえば、ウェブサイトで「お知らせ」や「商品レビュー」など、ブログ記事とは異なる形式のコンテンツを扱いたいとします。この場合、すべてのコンテンツを「投稿」として扱うと、以下のような問題が生じることがあります。
- 管理が複雑になる: ブログ記事、お知らせ、商品情報などがすべて「投稿」として混在し、管理画面が見にくくなります。
- デザインやレイアウトが統一できない: 各コンテンツの表示方法を個別に調整する必要があり、手間がかかります。
- 機能が不十分: 特定のコンテンツタイプに特化したフィールド(例:商品レビューの評価、価格、商品画像など)を追加することが難しくなります。
カスタム投稿タイプを使用することで、これらの問題を解決できます。
カスタム投稿タイプでできること
カスタム投稿タイプを導入すると、以下のようなことが可能になります。
- 独自のコンテンツセクションの作成: 「商品」「お知らせ」「イベント情報」など、それぞれのコンテンツに専用の管理画面を作成できます。
- 独自のフィールドの追加: 投稿にタイトルや本文以外の情報を追加できます。たとえば、商品投稿に「価格」「在庫数」「商品の特徴」といった項目を追加できます。
- 専用のカテゴリーやタグの設定: 特定のカスタム投稿タイプにのみ使用できる独自の分類(タクソノミー)を作成できます。
- 表示テンプレートのカスタマイズ: 特定のカスタム投稿タイプにのみ適用される専用のデザインやレイアウトを設定できます。
カスタム投稿タイプの作成方法
カスタム投稿タイプを作成する方法は、主に以下の2つです。
- プラグインを利用する: 「Custom Post Type UI」や「ACF (Advanced Custom Fields)」などのプラグインを使用すると、コードを書かずにGUIで簡単にカスタム投稿タイプを作成できます。初心者にはこの方法がおすすめです。
- functions.php にコードを記述する: テーマの
functions.phpファイルにregister_post_type()関数を使って直接コードを記述する方法です。より柔軟な設定が可能ですが、WordPressのテーマ開発の知識が必要です。
カスタム投稿タイプは、WordPressサイトをより専門的で管理しやすくするために非常に便利な機能です。ブログ投稿や固定ページだけでは対応できない独自のコンテンツを扱う際に、ぜひ活用を検討してみてください。
カスタム投稿を作る
WordPressでカスタム投稿タイプを作成するには、register_post_type()関数を使います。この関数は、テーマのfunctions.phpファイルに追加するか、プラグインとして作成するのが一般的です。
基本的な作り方
カスタム投稿タイプを作成する基本的なコードは以下の通りです。このコードをテーマのfunctions.phpファイルに貼り付けてください。
PHP
function create_custom_post_type() {
register_post_type('custom_post',
array(
'labels' => array(
'name' => 'カスタム投稿', // 管理画面に表示される投稿タイプの名前
'singular_name' => 'カスタム投稿',
),
'public' => true, // 投稿タイプを公開するか
'has_archive' => true, // 投稿アーカイブページを有効にするか
'menu_position' => 5, // 管理画面のメニュー表示位置
'supports' => array('title', 'editor', 'thumbnail', 'revisions'), // サポートする機能
)
);
}
add_action('init', 'create_custom_post_type');
Code language: PHP (php)
このコードでは、custom_postというスラッグを持つ新しい投稿タイプが作成されます。
主な引数(パラメータ)の説明
register_post_type()関数は、カスタム投稿タイプの動作を細かく設定するための多くの引数を持っています。特に重要なものをいくつか紹介します。
labels
管理画面に表示される名前や説明を設定します。
name: 管理画面のメニューに表示される名前。singular_name: 投稿一件あたりの名前。
public
投稿タイプを一般公開するかどうかを設定します。
true: 公開し、URLでアクセス可能になります。false: 非公開となり、管理画面でのみ利用できます。
has_archive
投稿タイプの一覧ページ(アーカイブページ)を生成するかを設定します。
true:(サイトURL)/custom_postのようなアーカイブページが自動的に生成されます。
menu_position
管理画面のサイドメニューでの表示位置を設定します。
- 数値が小さいほど上部に表示されます。
- 例:
5(投稿の下),20(ページの下)
supports
その投稿タイプで利用する機能を配列で指定します。
title: タイトル入力欄editor: 本文エディタthumbnail: アイキャッチ画像revisions: リビジョン機能
カスタム分類(タクソノミー)の追加
カスタム投稿タイプにカテゴリーやタグのような分類機能を追加するには、register_taxonomy()関数を使います。
PHP
function create_custom_taxonomy() {
register_taxonomy(
'custom_cat', // タクソノミーのスラッグ
'custom_post', // 紐づける投稿タイプ
array(
'label' => 'カスタムカテゴリー',
'public' => true,
'hierarchical' => true, // 階層を持つか(カテゴリーのように)
'rewrite' => array('slug' => 'custom_cat'),
)
);
}
add_action('init', 'create_custom_taxonomy');
Code language: PHP (php)
このコードでは、custom_postに**custom_cat**という新しいカテゴリー分類が追加されます。
注意点
- コードを
functions.phpに追加した後、管理画面の「設定」→「パーマリンク設定」に一度アクセスして「変更を保存」ボタンを押してください。 これにより、URLのルールが更新され、カスタム投稿タイプのページが正しく表示されるようになります。 - 複数のカスタム投稿タイプやカスタム分類を作成する場合は、関数名をそれぞれユニークな名前にしてください。
カスタム投稿を扱うプラグイン
WordPressでカスタム投稿を扱うためのプラグインはいくつかありますが、代表的なものとして以下の2つが挙げられます。
1. Custom Post Type UI (CPT UI)
最も広く使われており、カスタム投稿タイプとカスタムタクソノミー(カスタム分類)を管理画面から簡単に作成・編集できるプラグインです。
- 特徴:
- コードを書く必要がなく、直感的なUIでカスタム投稿を作成できる。
- カスタム投稿のスラッグ、ラベル、アーカイブの有無など、詳細な設定が可能。
- カスタムタクソノミーも一緒に作成・設定できる。
- インポート・エクスポート機能があり、設定内容を別のサイトに簡単に移行できる。
- 多くの情報や利用事例が公開されているため、困ったときに解決しやすい。
2. Advanced Custom Fields (ACF)
ACFは本来カスタムフィールドを追加するためのプラグインですが、バージョン6.1以降はカスタム投稿タイプとカスタムタクソノミーの作成機能も備えるようになりました。
- 特徴:
- カスタム投稿タイプ、カスタムタクソノミー、カスタムフィールドを一つのプラグインでまとめて管理できる。
- 特に、繰り返しフィールドなどの高度なカスタムフィールドを多用する場合に便利。
- 有料版(ACF PRO)では、より多くの機能が利用できる。
どちらを選ぶべきか
- Custom Post Type UI (CPT UI):
- カスタム投稿タイプとカスタムタクソノミーをシンプルに作成したい場合。
- カスタムフィールドは別のプラグイン(ACFなど)で管理する場合。
- 多くのユーザーが利用しているため、情報量の多さを重視する場合。
- Advanced Custom Fields (ACF):
- カスタム投稿タイプ、カスタムタクソノミー、カスタムフィールドをすべて一つのプラグインで完結させたい場合。
- 特に高度なカスタムフィールド(繰り返しフィールドなど)を多用する場合。
どちらのプラグインも単体で十分に機能しますが、多くの場合、CPT UIとACFを組み合わせて利用することが一般的です。CPT UIで基本的なカスタム投稿タイプを作成し、ACFでそのカスタム投稿に必要なカスタムフィールドを追加していく、という使い方がよく行われます。
WordPressをカスタマイズする方法
WordPressをカスタマイズする主な方法と、それぞれの概要、難易度をまとめた表を作成しました。WordPressのカスタマイズは、目的や技術的なスキルレベルに応じて様々なアプローチがあります。
| 方法 | 概要 | 主な目的 | 難易度 |
| テーマの変更 | デザインの基本構造、レイアウトを一新します。無料・有料のものが多数あります。 | デザイン、全体的な機能の変更 | 低〜中 |
| テーマカスタマイザー | WordPress標準機能で、テーマの色、フォント、ヘッダー画像などをコードを書かずに変更します。 | 見た目の微調整、ロゴやウィジェットの設定 | 低 |
| プラグインの導入 | 既存のWordPressにない機能(お問い合わせフォーム、SEO対策、セキュリティ強化など)を追加します。 | 機能の追加・拡張 | 低〜中 |
| CSSの追加 | テーマの見た目(色、サイズ、配置など)を細かく調整するために、カスタムCSSを追記します。 | デザインの微調整 | 中 |
| 子テーマの使用と編集 | 親テーマを直接編集せず、子テーマを作成し、その中のファイル(functions.php やテンプレートファイルなど)を編集して機能を変更・追加します。 | 機能やレイアウトの変更(テーマのアップデートに備える) | 中〜高 |
| テーマファイルの直接編集 | 親テーマのファイル(header.php, index.php など)を直接編集します。 | 機能やレイアウトの根本的な変更 | 高 |
| カスタムテーマ・プラグイン開発 | 既存のものを使わず、ゼロから独自のテーマやプラグインをPHPなどを使い開発します。 | 独自のデザインと機能の実装 | 最も高 |
カスタマイズのヒント
- 簡単な変更から始める場合は、「テーマカスタマイザー」や「プラグインの導入」が最も手軽です。
- デザインを少し変えたい場合は、「CSSの追加」が強力です。
- 本格的な機能追加やレイアウト変更を行う際は、テーマのアップデートで変更が消えないように「子テーマの使用と編集」を強くお勧めします。
WordPressテーマ カスタマイズのしやすさ 傾向比較
一般的にWeb上で言われている評判や特徴に基づいて、「コード知識が少ない人が、手軽にデザインを変更できる(=カスタマイズしやすい)」という視点での傾向をまとめています。
| 順位 (※傾向) | テーマ名 | 主な特徴とカスタマイズの傾向 |
| 1 | THE THOR(ザ・トール) | 専用カスタマイザー機能が非常に豊富で、コードを書かずに細部までデザインを変更できる。多機能ゆえに操作が複雑に感じる場合もあるが、カスタマイズの幅は広い。 |
| 2 | STORK SE(ストークSE) | シンプルな構造で、初心者でも迷いにくい設計。ブログ運営に特化した機能が充実しており、特別な知識がなくても見栄えの良いデザインになりやすい。 |
| 3 | Emanon(エマノン) | マーケティング・ビジネスサイト向け。専用ブロックやウィジェットが用意されており、必要な要素を簡単に配置できる。多機能なPro版などがある。 |
| 4 | LIQUID PRESS(リキッドプレス) | 標準機能は抑えつつも、カスタマイズの拡張性が高い。知識があれば自由に変更しやすいが、THE THORほど専用設定項目は多くない傾向。 |
| 5 | RE:DIVER(リダイバー) | 比較的新しいテーマで、Webサイト制作向けのモダンなデザインが特徴。専用機能でのカスタマイズと、コードカスタマイズのバランスが取れている。 |
| 6 | GOLD MEDIA(ゴールドメディア) / GOLD BLOG(ゴールドブログ) | 開発元が同じで、多機能性を売りにしていることが多い。多機能ゆえに初心者には難しいと感じる部分もあるが、専用のオプションは用意されている。 |




