カスタム投稿タイプの作り方|お知らせとブログを分かりやすく管理する方法


お知らせとブログが管理画面で混ざって探しにくい、というご相談をよくいただきます。カスタム投稿タイプを使うときれいに分けられますよ。



そのカスタム投稿タイプというのは、どういう意味ですか?



普段お使いの「投稿」とは別に、お知らせ専用の入り口を管理画面に増やせる仕組みです。書く場所が最初から分かれているので、混ざる心配がなくなります。



それなら私にも管理できそうです。詳しく教えてください。
WordPressの「お知らせ」と「ブログ」は、カテゴリーではなくカスタム投稿タイプで投稿の種類ごと分けて管理するのが確実です。カテゴリー分けと違い選び忘れによる誤表示が起こらず、管理画面にも専用メニューが追加されます。プラグイン「Custom Post Type UI」なら管理画面の操作だけで10分ほどで作成でき、functions.phpへの数十行のコードでも実装可能です。
はじめに
WordPressでホームページを運営していると、「会社からのお知らせ」と「ブログ記事」が管理画面の同じ投稿一覧に混ざってしまいがちです。目的の記事を探しにくいと感じたことはないでしょうか。カテゴリーで区別してはいるものの、選び忘れてブログ記事がお知らせ欄に表示されてしまった、という失敗もよく起こります。
この記事では、WordPressの「カスタム投稿タイプ」という仕組みを使って、お知らせとブログを完全に分けて管理する方法を解説します。プラグインで作る方法とコードで作る方法の両方を紹介しますので、ご自身の状況に合ったやり方を選べます。読み終える頃には、管理画面が整理され、更新ミスの起こりにくいサイトに近づけるはずです。
カスタム投稿タイプとは?お知らせとブログを分けるべき理由


まずは仕組みの基本と、「カテゴリーで分けるだけではダメなのか」という疑問にお答えします。
カスタム投稿タイプの基本
カスタム投稿タイプとは、WordPressに標準で用意されている「投稿」「固定ページ」とは別に、独自の投稿メニューを追加できる仕組みです。お知らせ(新着情報)のほか、イベント情報や施工実績など、種類の違うコンテンツを別々の入れ物で管理できます。
家づくりに例えると、標準の「投稿」はリビングのような多目的の部屋です。何でも置けて便利な反面、物が増えるほど散らかっていきます。カスタム投稿タイプは「お知らせ専用の部屋」を増築するイメージで、部屋ごとに用途が決まっているため、どこに何があるかが一目で分かります。
追加すると、管理画面の左メニューに「投稿」と並んで「お知らせ」という専用メニューが表示されます。記事を書く画面や操作は通常の投稿とまったく同じなので、新しい操作を覚える必要はありません。
さらに、お知らせとブログでページのデザイン(テンプレート)を別々に用意できる、更新できる担当者の権限を分けられる、といった利点もあります。会社の営業日カレンダーと社長ブログを別の担当者が更新する、といった運用がしやすくなります。
カテゴリー分けで運用してはいけない理由
「投稿のカテゴリーで『お知らせ』と『ブログ』を分ければ十分では?」と思うかもしれません。しかし、カテゴリー運用には選び忘れによる誤表示という構造的な弱点があります。
店舗運営に例えると、カテゴリー分けは「同じ棚に商品を並べて、値札の色だけで区別している」ような状態です。値札を付け忘れれば、お客様には区別がつきません。実際、カテゴリーの選択を忘れると、ブログ記事がトップページのお知らせ欄に紛れ込む、といった事故が起こります。
カスタム投稿タイプなら棚そのものが分かれているため、そもそも混ざりようがありません。書く場所を選んだ時点で記事の行き先が確定するので、更新担当者が複数いるサイトでも運用ミスを防げます。カテゴリーは本来「ブログの中の話題分け(施工事例・豆知識など)」に使うものと考えると、役割がすっきり整理されます。
カスタム投稿タイプで「お知らせ」を作る2つの方法


作り方は大きく2つあります。手軽さを重視するならプラグイン、サイトの軽さや保守性を重視するならコードでの実装がおすすめです。
方法1:プラグイン「Custom Post Type UI」で作る
コードに触れたくない場合は、定番プラグインのCustom Post Type UIを使うのが最も簡単です。手順は次のとおりです。
- 管理画面の「プラグイン」→「新規追加」で「Custom Post Type UI」を検索し、インストールして有効化する
- 左メニューの「CPT UI」→「投稿タイプの追加と編集」を開く
- 「投稿タイプスラッグ」に「news」、複数形・単数形のラベルに「お知らせ」と入力する
- 設定項目の「アーカイブあり」を「真」(True)に変更する
- 必要に応じて「サポート」欄で「アイキャッチ画像」にチェックを入れる
- 「投稿タイプを追加」をクリックする
これだけで管理画面に「お知らせ」メニューが追加されます。所要時間は10分もかかりません。
注意点として、このプラグインを停止するとお知らせが管理画面から見えなくなります(データ自体は消えません)。今後も使い続ける前提で導入してください。
方法2:functions.phpにコードを書いて作る(プラグインなし)
プラグインを増やしたくない場合は、テーマのfunctions.phpに次のようなコードを追加します。
function create_news_post_type() {
register_post_type( 'news',
array(
'labels' => array(
'name' => 'お知らせ',
),
'public' => true,
'has_archive' => true,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'show_in_rest' => true,
)
);
}
add_action( 'init', 'create_news_post_type' );「’show_in_rest’ => true」は、ブロックエディターでお知らせを編集するために必要な設定です。
編集前には必ずバックアップを取り、可能であれば子テーマのfunctions.phpに記述してください。記述を誤るとサイト全体が表示されなくなるおそれがあるため、不安な場合は方法1のプラグインを選ぶのが安全です。
作成した「お知らせ」をサイトに表示する方法


投稿タイプを作っただけでは、サイトの見た目には何も変わりません。訪問者に見せるための表示設定を行いましょう。
お知らせの一覧ページを表示する
「アーカイブあり」を有効にして作成した場合、「https://ドメイン名/news/」というURLでお知らせの一覧ページが自動的に生成されます。
ここで多くの人がつまずくのが404エラーです。作成直後に一覧ページを開くと「ページが見つかりません」と表示されることがありますが、これは不具合ではありません。管理画面の「設定」→「パーマリンク」を開き、何も変更せずに「変更を保存」を押すだけで解消します。WordPressにURLのルールを覚え直させる操作だと考えてください。
一覧の見た目を細かく整えたい場合は、テーマ内に「archive-news.php」というテンプレートファイルを作成すると、お知らせ専用のデザインを適用できます。
トップページに新着のお知らせを表示する
企業サイトでは、トップページに最新のお知らせを3〜5件表示するのが定番です。ブロックエディター対応のテーマであれば、「クエリーループ」ブロックを配置し、対象の投稿タイプに「お知らせ」を指定するだけで実装できます。
テンプレートファイルに直接書く場合は、WP_Queryで「’post_type’ => ‘news’」を指定して最新記事を取得します。表示件数は「’posts_per_page’」で調整できます。なお、テーマによっては新着記事ウィジェットが標準の「投稿」しか対象にしないことがあります。その場合はクエリーループかコードでの実装が確実です。
運用で失敗しないための3つのポイント


最後に、私が企業サイトを制作するなかで実際に見てきた、起こりがちな失敗と対策を紹介します。
投稿タイプを分けすぎない
便利だからといって「お知らせ」「コラム」「スタッフ日記」「実績」と際限なく増やすと、かえって管理画面が煩雑になります。更新の目的と読者が明確に違うものだけを分けるのが原則です。お知らせとブログの2本立てで迷うことはまずありませんが、3つ目以降は本当に必要かを一度立ち止まって検討しましょう。
スラッグは後から変えない前提で決める
投稿タイプのスラッグ(newsなどの英語名)はURLの一部になります。公開後に変更するとURLが変わり、検索エンジンからの評価やSNSでシェアされたリンクが無効になってしまいます。最初に「news」「blog」など内容を素直に表す英単語で決めて、以後は変更しないでください。
既存記事の引っ越しは慎重に
すでに「投稿」でお知らせを書いてきたサイトでは、過去記事をカスタム投稿タイプへ移す作業が発生します。Post Type Switcherなどのプラグインで移行自体は可能です。ただし移行するとURLが変わるため、記事数が多い場合はリダイレクト設定(転送設定)とセットで行う必要があります。判断に迷う場合は、過去記事はそのままにして新しい記事から分ける運用も現実的な選択肢です。
まとめ
カスタム投稿タイプを使えば、WordPressの「お知らせ」と「ブログ」を専用メニューで完全に分けて管理できます。重要なポイントを振り返ります。
- カテゴリー分けは選び忘れによる誤表示が起こるため、投稿タイプ自体を分けるのが確実
- 手軽に作るならプラグイン「Custom Post Type UI」、保守性重視ならfunctions.phpで実装
- 一覧ページが404エラーになったらパーマリンク設定を保存し直す
- トップページへの新着表示はクエリーループブロックが便利
- スラッグは後から変えない前提で命名し、投稿タイプは増やしすぎない
まずはバックアップを取ったうえで、お知らせ用の投稿タイプをひとつ作ってみてください。管理画面が見違えるほど整理され、日々の更新作業がぐっと楽になるはずです。
よくある質問
- カスタム投稿タイプを追加すると、今までの投稿記事はどうなりますか?
-
既存の記事には一切影響しません。カスタム投稿タイプは新しい入れ物を追加するだけで、標準の「投稿」のデータはそのまま残ります。過去のお知らせ記事を新しい投稿タイプへ移したい場合は、Post Type Switcherなどの移行用プラグインを使います。
- お知らせとブログのどちらをカスタム投稿タイプにすべきですか?
-
更新頻度が高く、カテゴリーやタグを多く使う方を標準の「投稿」にするのがおすすめです。一般的にはブログを「投稿」のまま運用し、お知らせをカスタム投稿タイプにするケースが多く、テーマの標準機能(関連記事表示など)もブログ側で活かせます。
- Custom Post Type UIを停止するとお知らせは消えますか?
-
データベース上のデータは消えませんが、管理画面とサイト上には表示されなくなります。プラグインを外したい場合は、同じスラッグでfunctions.phpにregister_post_typeのコードを書けば、そのまま表示を引き継げます。
- カスタム投稿タイプの記事が検索結果に出ません。SEOに不利ですか?
-
カスタム投稿タイプ自体がSEOに不利になることはありません。作成時に「public」(公開設定)が有効になっているか、SEOプラグインの設定でお知らせ投稿タイプがインデックス対象になっているかを確認してください。むしろ情報が整理されることで、検索エンジンにもサイト構造が伝わりやすくなります。
- お知らせにもカテゴリーのような分類を付けられますか?
-
「カスタムタクソノミー」という仕組みを使えば、お知らせ専用の分類(重要・イベント・メディア掲載など)を追加できます。Custom Post Type UIなら「タクソノミーの追加と編集」画面から、コードの場合はregister_taxonomy関数で作成し、対象の投稿タイプに「news」を指定します。



カテゴリーで区別するのではなく、投稿タイプごと分けるのが確実です。プラグインを使えば10分ほどで作れますよ。



一覧ページが404エラーになったら、パーマリンクを保存し直せばいいのですね。



そのとおりです。まずはバックアップを取って、お知らせ用の投稿タイプをひとつ作ってみてください。



管理画面が整理されると思うと楽しみです。さっそく試してみます。









