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

WordPressカスタム投稿とは

WordPressにおけるカスタム投稿タイプとは、ブログ投稿や固定ページとは別に、独自のコンテンツタイプを作成できる機能のことです。これにより、目的に応じた特定の種類のコンテンツを管理・表示できます。

なぜカスタム投稿タイプが必要なのか?

たとえば、ウェブサイトで「お知らせ」や「商品レビュー」など、ブログ記事とは異なる形式のコンテンツを扱いたいとします。この場合、すべてのコンテンツを「投稿」として扱うと、以下のような問題が生じることがあります。

  • 管理が複雑になる: ブログ記事、お知らせ、商品情報などがすべて「投稿」として混在し、管理画面が見にくくなります。
  • デザインやレイアウトが統一できない: 各コンテンツの表示方法を個別に調整する必要があり、手間がかかります。
  • 機能が不十分: 特定のコンテンツタイプに特化したフィールド(例:商品レビューの評価、価格、商品画像など)を追加することが難しくなります。

カスタム投稿タイプを使用することで、これらの問題を解決できます。

カスタム投稿タイプでできること

カスタム投稿タイプを導入すると、以下のようなことが可能になります。

  • 独自のコンテンツセクションの作成: 「商品」「お知らせ」「イベント情報」など、それぞれのコンテンツに専用の管理画面を作成できます。
  • 独自のフィールドの追加: 投稿にタイトルや本文以外の情報を追加できます。たとえば、商品投稿に「価格」「在庫数」「商品の特徴」といった項目を追加できます。
  • 専用のカテゴリーやタグの設定: 特定のカスタム投稿タイプにのみ使用できる独自の分類(タクソノミー)を作成できます。
  • 表示テンプレートのカスタマイズ: 特定のカスタム投稿タイプにのみ適用される専用のデザインやレイアウトを設定できます。

カスタム投稿タイプの作成方法

カスタム投稿タイプを作成する方法は、主に以下の2つです。

  1. プラグインを利用する: 「Custom Post Type UI」や「ACF (Advanced Custom Fields)」などのプラグインを使用すると、コードを書かずにGUIで簡単にカスタム投稿タイプを作成できます。初心者にはこの方法がおすすめです。
  2. 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');

このコードでは、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');

このコードでは、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はカスタマイズがしやすいと言える要素が多いです。

カスタマイズしやすい点

  • テーマの豊富さ:
    • デザインや機能があらかじめ組み込まれた「テーマ」が非常に多く、テーマを選ぶだけでサイトの見た目や基本的な機能を簡単に変更できます。
    • カスタマイズ性に優れていることを売りにしているテーマ(例:SWELL, AFFINGER, Snow Monkeyなど)も多く、これらのテーマを使えばコードを触らずに設定画面から多くの調整が可能です。
    • 最近はフルサイト編集(FSE)に対応したテーマもあり、より直感的にサイト全体を編集できます。
  • プラグインによる機能追加:
    • Webサイトに必要な様々な機能(問い合わせフォーム、セキュリティ対策、SEO対策、表示速度の改善など)を、プログラムの知識なしにプラグインを導入するだけで追加できます。
  • CSSなどの知識があればさらに自由度が高い:
    • HTMLやCSS、PHPといったウェブ制作の知識があれば、テーマファイルを直接編集したり、子テーマを作成したりすることで、さらに細部にわたる自由なカスタマイズが可能です。

注意点

  • テーマ選びが重要:
    • デザインを大きく変えたい場合や、特定の機能を追加したい場合、選んだテーマのカスタマイズの自由度が低いと、実現が難しかったり、余計な手間がかかったりすることがあります。
    • 初心者の方は、直感的な操作や豊富な設定オプションがある「カスタマイズしやすい」と評判のテーマを選ぶと良いでしょう。
  • 複雑な機能の実装には知識が必要:
    • 非常に高度で特殊な機能や、テーマの標準設定にない大きな構造変更を行うには、やはりPHPなどのプログラミング知識が必要になります。
    • この場合、専門の制作会社に依頼したり、自分でコードを編集するために学習したりする必要があります。

結論として、多くのカスタマイズは知識がなくても比較的簡単に行えますが、どこまで深く、細かくこだわるかによって難易度は変わってきます。

有料WordPressテーマはカスタマイズに有利

有料のWordPressテーマは一般的にカスタマイズに有利だと言えます。

主な理由としては、以下のような点があります。

  1. 豊富な機能と設定オプション:
    • 有料テーマには、デザインやレイアウトを細かく調整するための専用機能や設定項目が豊富に用意されていることが多いです。
    • プラグインをあまり使わなくても、枠線、吹き出し、装飾文字などの実用的な機能が使えるようになっていることが多く、初心者でも簡単にカスタマイズできます。
  2. デザインの自由度の高さ:
    • 最初からプロが作成した洗練されたデザインテンプレートが用意されており、それをベースに色やレイアウトを比較的自由に調整できるテーマが多いです。
    • 多くのテーマがブロックエディタ(Gutenberg)に完全対応し、より直感的にカスタマイズできるようになっています。
  3. サポートとマニュアルの充実:
    • カスタマイズ方法やトラブルシューティングに関する詳細なマニュアルが整備されていたり、購入者向けのサポート(メールやフォーラムなど)が付いていることが多いため、困ったときに解決しやすいです。
  4. 技術的な優位性:
    • SEO対策や高速表示など、サイト運営に重要な技術的要素が考慮されて設計されていることが多く、その上でカスタマイズも容易にできるように作られています。

無料テーマでも素晴らしいものはありますが、カスタマイズの自由度を上げようとすると、自分でCSSやHTMLなどの専門知識が必要になるケースや、利用できる機能に限界を感じることが少なくありません。

時間を節約し、効率的かつ高品質なサイトを構築したい場合は、初期投資として有料テーマを導入することが、結果的に大きなメリットとなることが多いです。

テーマ名主な特徴・強み適したサイト
ザ・トール (THE THOR)国内最高クラスのSEO最適化高速表示
プロ仕様の美しいデザインを簡単に実現(着せ替え機能あり)
アフィリエイトに役立つランキング作成機能CTAが充実<記事装飾機能が豊富で、読みやすいコンテンツ作成を支援
アフィリエイトブログ本格的なメディアサイト集客を重視するビジネスサイト
エマノン (Emanon)Web集客・ビジネス利用に特化した機能が豊富
CTA(行動喚起)、LP(ランディングページ)、メルマガ専用ページなどを簡単に作成
企業サイト、オウンドメディアに適したデザイン
WooCommerce対応でネットショップにも利用可能(Premium)
コーポレートサイト企業ブログオウンドメディアリード獲得を目的としたビジネスサイト
ストークSE (STORK SE)「誰が使っても美しいデザイン」を追求したモバイルファースト設計
シングルカラム(1カラム)レイアウトに特化し、コンテンツへの集中度が高い
ブロックエディタに最適化され、直感的な操作が可能
シンプルかつ洗練されたデザインで、汎用性が高い
商品・サービスのブランディングサイト、ミニマルな企業サイトシンプルで美しいブログ
リキッドプレス (LIQUID PRESS)用途別に豊富なテーマ(マガジン、コーポレートなど)が用意されている
高いSEO対策と構造化データ対応
多言語対応機能(LIQUID CORPORATEなど)
カスタマイザーでの直感的な編集が可能
メディアサイト(ブログ)、多言語対応が必要な企業サイト目的に合わせたテーマを選びたいサイト
有料WordPressテーマ

補足情報

  • ザ・トール: SEOと収益化を最重視する設計で、アフィリエイターやブロガーに人気が高いテーマです。
  • エマノン: 特にBtoBサービス業など、Webからの顧客獲得(リードジェネレーション)を重視するビジネスサイト構築に適しています。
  • ストークSE: モバイルでの見やすさに徹底的にこだわり、余計な装飾を排したデザインが特徴です。商品の魅力を際立たせたいサイトにも向いています。
  • リキッドプレス: 豊富なラインナップの中から目的特化型のテーマを選べるのが大きなメリットです。例えば、ニュースサイトならLIQUID MAGAZINE、企業サイトならLIQUID CORPORATEなどがあります。