見出し画像

アダアフィ初心者必見!WordPressの自作テーマでカスタムタクソノミーを実装する方法

今回から何回かにわたってWordPressの自作テーマでサイトを作る上で役に立つ記事を投稿したいと思います!

初回はWordPressでカスタムタクソノミーを実装する方法を解説します。


タクソノミーとは?

タクソノミーとは、投稿コンテンツ(記事ページ等)を分類・整理するための仕組みです。

WordPressにはデフォルトで以下の2つのタクソノミーが初期設定されますね!

  • カテゴリー:階層的に分類できます。エログで言えば、「FANZA」という親カテゴリーの中に「素人」や「VR」などの子カテゴリーを作成できます。

  • タグ:階層はなく、自由に付けることができます。エログだと、投稿に「巨乳」「フェ◯チオ」といったタグを付けられます。

ただこれだと女優名などの分類を付けたいときに不便なこともあり、独自に分類できるカスタムタクソノミーを使うのが便利です!

それではWordPressでカスタムタクソノミーを実装する方法を見てみましょう

カスタムタクソノミーの実装

カスタムタクソノミーを実装するにはfunction.phpに以下のコードを書きます。

ここでは出演女優の分類を行います。

function create_performer_taxonomies() {
  // カスタムタクソノミー: 出演女優
  register_taxonomy(
    'actor',  // タクソノミーのスラッグ。'actor' という識別名
    'post',   // このタクソノミーが適用される投稿タイプ。'post' は標準の投稿
    array(
      'labels' => array(
        'name' => '出演女優',                // タクソノミーの表示名(複数形)
        'singular_name' => '出演女優',         // 単数形の表示名
        'search_items' => '女優を検索',        // 検索時のラベル
        'all_items' => '全ての女優',          // 管理画面で全て表示する際のラベル
        'edit_item' => '女優を編集',          // 編集ページのラベル
        'update_item' => '女優を更新',        // 更新時のラベル
        'add_new_item' => '新しい女優を追加',  // 新規追加時のラベル
        'add_item_name' => '新しい女優の名前',  // 新規追加フォームのラベル
        'menu_name' => '出演女優',            // メニューに表示される名前
      ),
      'hierarchical' => false,  // false でタクソノミーはタグのように振る舞い、階層を持たない
      'show_ui' => true,        // 管理画面に表示するかどうか
      'show_in_rest' => true,   // ブロックエディタやREST APIで利用可能にするかどうか
      'show_admin_column' => true, // 管理画面の投稿一覧にカラムを追加
      'query_var' => true,      // タクソノミーのクエリ変数を有効にする
      'rewrite' => array('slug' => 'actor'), // パーマリンクで使われるURLのスラッグ
    )
  );
}
// initフックでカスタム投稿タイプの登録関数を呼び出す
add_action('init', 'create_performer_taxonomies', 0);

詳細はコメントに書いてるので参照して欲しいです。

register_taxonomy()関数

カスタムタクソノミーをWordPressに登録するための関数です。この関数に必要な情報を渡すことで、新しい分類システムを追加できます。以下、各引数を詳しく説明しますね!

  • $taxonomy: これはカスタムタクソノミーの名前を指定するスラッグです。URLやデータベースで使われる識別名になります。ここでは 'actor' を指定しています

  • $object_type: このカスタムタクソノミーをどの投稿タイプに関連付けるかを指定します。ここでは 'post'を指定してます

  • $args: タクソノミーの動作や表示に関する設定を配列として渡します。この配列で、管理画面に表示するかどうか、REST APIの対応、パーマリンクのスラッグなどを設定できます。

フックの使用

add_action('init', 'create_performer_taxonomies', 0);
  • add_action(): WordPressのアクションフックを使って、特定のタイミングで関数を実行します。ここでは、init フックを使い、WordPressの初期化時にカスタムタクソノミーを登録する create_performer_taxonomies 関数を呼び出しています。

  • 優先順位: 最後の引数 0 は優先順位です。これにより、他のアクションフックよりも早いタイミングでタクソノミーを登録しています。

使用例

ここではサイドバーなどに記事にした女優名をタグのように表示する例を書きます

<div>
  <?php if($actors = get_terms('actor')) : ?>
    <?php foreach ($actors as $actor): ?>
      <a href="<?= esc_url(get_term_link($actor)); ?>">
        <?= esc_html($actor->name); ?>(<?= $actor->count; ?>)
      </a>
    <?php endforeach; ?>
  <?php endif; ?>
</div>

get_terms('actor'): WordPressの get_terms() 関数を使って、指定されたタクソノミー(ここでは 'actor')に属するすべてのタームを取得しています。'actor' はカスタムタクソノミーのスラッグです。

foreach ループ: 取得したタームの配列をループ処理し、1つ1つのタームを $actor 変数に格納して処理します。この部分で各出演女優のタームを個別に処理しています。

<a href="<?= esc_url(get_term_link($actor)); ?>">
  <?= esc_html($actor->name); ?>(<?= $actor->count; ?>)
</a>

get_term_link($actor): この関数は$actorに対するURLを取得します。

$actor->name:ここで各女優の名前を取得して表示させます

$actor->count: countで登録している数を表示させることができます。

まとめ

WordPressの自作テーマでサイトを作る上で使うカスタムタクソノミーについて書きました。

この記事が何か参考になれば幸いです☘️

それでは良いWordPressライフを!

いいなと思ったら応援しよう!