WordPressで症例ページを管理するカスタム投稿&分類設計ガイド【サンプル構成付き】

美容・クリニック・サロンなどのサイト運営では、「症例」ページの充実が信頼性や集客につながる重要なポイントです。この記事では、WordPressで症例情報を効率的に管理・表示するためのカスタム投稿タイプ+カスタム分類の構成例をご紹介します。

症例管理に必要な要素とは?

症例ページでよく見られる構成は、次のような情報を含みます。

  • カテゴリ(例:眉・アイライン・唇など)
  • 年代(例:30代・40代など)
  • 施術者(アーティスト)
  • メニュー種別(例:眉3D、リップなど)
  • 施術前後の画像やコメント

これらをWordPressのカスタム投稿+カスタム分類(タクソノミー)で管理することで、
運用効率が格段にアップします。

投稿タイプ「症例(case)」を作成

まずはカスタム投稿タイプ「症例(case)」をfunctions.phpに登録します。

function create_case_post_type() {
register_post_type('case', [
'labels' => [
'name' => '症例',
'singular_name' => '症例'
],
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor', 'thumbnail'],
'menu_position' => 5,
'menu_icon' => 'dashicons-visibility',
'show_in_rest' => true,
'rewrite' => ['slug' => 'case'],
]);
}
add_action('init', 'create_case_post_type');

これで管理画面に「症例」投稿が追加されます。

カスタム分類(カテゴリ・年代・アーティスト・メニュー)を追加

続いて、症例を整理するための分類を追加していきます。

// 症例カテゴリ
register_taxonomy('case_category', 'case', [
'label' => '症例カテゴリ',
'hierarchical' => true,
'public' => true,
'show_in_rest' => true,
]);

// 年代
register_taxonomy('case_age', 'case', [
'label' => '年代',
'hierarchical' => false,
'public' => true,
'show_in_rest' => true,
]);

// アーティスト(施術者)
register_taxonomy('case_artist', 'case', [
'label' => 'アーティスト',
'hierarchical' => false,
'public' => true,
'show_in_rest' => true,
]);

// メニュー
register_taxonomy('case_menu', 'case', [
'label' => 'メニュー',
'hierarchical' => false,
'public' => true,
'show_in_rest' => true,
]);

分類は投稿画面から自由に設定できますし、必要に応じてフィルター検索にも活用できます。

用語(ターム)をサンプル登録する

管理画面から手動で登録するのもOKですが、サンプルデータを自動で入れるコードも便利です。

function insert_case_terms() {
$categories = ['眉アートメイク', 'アイライン', '唇', 'ヘア', 'メンズ'];
$ages = ['10代', '20代', '30代', '40代', '50代', '60代以上'];
$artists = ['好原', '山本', '宅間', '吉村', '小林', '太田垣', '毛利', '米田', '中西', '栗原'];
$menus = ['眉2D', '眉3D', '眉4D', 'リップ', 'アイライン', 'ヘアライン', 'スカルプエア'];

foreach ($categories as $cat) {
if (!term_exists($cat, 'case_category')) {
wp_insert_term($cat, 'case_category');
}
}
foreach ($ages as $age) {
if (!term_exists($age, 'case_age')) {
wp_insert_term($age, 'case_age');
}
}
foreach ($artists as $artist) {
if (!term_exists($artist, 'case_artist')) {
wp_insert_term($artist, 'case_artist');
}
}
foreach ($menus as $menu) {
if (!term_exists($menu, 'case_menu')) {
wp_insert_term($menu, 'case_menu');
}
}
}
add_action('init', 'insert_case_terms');

このコードを設置して一度読み込めば、すべてのタクソノミーにサンプル値が追加されます。

管理しやすくするなら「ACF」の活用もおすすめ

Advanced Custom Fields(ACF)を使えば、以下のようなカスタムフィールドも追加可能です。

  • Before/After 画像(画像フィールド)
  • 施術コメント(テキストエリア)
  • 施術日(日付フィールド)

さらに、特定のカテゴリやメニューによってフィールド表示を切り替える「条件表示」も簡単に設定できます。

表示テンプレート例(カテゴリや年代別一覧)

カスタム投稿を使ったアーカイブページでは、下記のようなフィルターUIや条件分岐による出し分けも実装できます。

<?php
$args = [
'post_type' => 'case',
'tax_query' => [
[
'taxonomy' => 'case_category',
'field' => 'slug',
'terms' => '眉アートメイク',
]
]
];
$the_query = new WP_Query($args);
?>

一覧に分類名やアーティストを表示したい場合は get_the_term_list() などを使うと便利です。

まとめ

「症例」情報は、カテゴリ・年代・アーティスト・メニューといった複数の軸で構成されるため、
WordPress標準の投稿だけでは管理が煩雑になります。
カスタム投稿と分類を導入することで、
「見やすく」「探しやすく」「更新しやすい」症例管理が実現できます。