【WordPress】タクソノミーアーカイブのパーマリンク(URL)の変更方法【カテゴリー一覧】

タクソノミーアーカイブのパーマリンク変更方法のサムネイル
SIM

カスタム投稿のカテゴリー一覧ページのURLは初期設定のままでは違和感がありますので、カスタマイズする方法を紹介します。

目次

タクソノミーアーカイブの初期設定のパーマリンク

はじめにタクソノミーアーカイブ(つまりカスタム投稿タイプのカテゴリーごとの一覧ページ)のパーマリンク(URL)が初期設定ではどのように表示されるのか下記にお示しします。

ページと項目パーマリンクとスラッグ
トップページのパーマリンクhttps://hoge.com
カスタム投稿タイプのスラッグworks
カスタムタクソノミーのスラッグworks-cat
カスタム投稿アーカイブのパーマリンクhttps://hoge.com/works
タクソノミーアーカイブのパーマリンクhttps://hoge.com/works-cat/ターム名

上の表のように、カスタム投稿タイプではworksとなっていたのが、タクソノミーアーカイブではworks-catに置き換わってしまうことが不自然に感じ、下記のように表示させたい方もいらっしゃると思います。

https://hoge.com/works/ターム名

そのためにはfunctions.phpに設定を書き加える必要があります。

タクソノミーアーカイブのパーマリンクのカスタマイズ方法

以下、タクソノミーアーカイブのパーマリンク変更のためのfuctions.phpの記述方法を紹介していきます。

functions.phpのカスタムタクソノミー(カテゴリー)を追加部分に追記する

カスタムタクソノミー(カテゴリー)を追加するときに書いたfunctions.phpの記述に下記の一行を付け加えます。

'rewrite' => array('slug' => '変更後の文字列'),

たとえば、下の例は、パーマリンクをworks-catからworksと表示されるようにしたもので、10行目が書き加えた箇所です。

  // カスタムタクソノミー(カテゴリー)を追加
  register_taxonomy(
    'works-cat', // カテゴリのスラッグ(半角英数字の小文字)
    'works', // カテゴリーを追加したいカスタム投稿タイプのスラッグ
    array(
      'label' => 'カテゴリー',  //管理画面での表示名
      'hierarchical' => true,  //階層構造
      'public' => true,  // 管理画面に表示するか?
      'show_in_rest' => true,  //ブロックエディターON
      'rewrite' => array('slug' => 'works'),
    )
  );

関連記事

あわせて読みたい
【WordPress】カスタム投稿タイプにカテゴリーとタグを追加する方法【カスタムタクソノミー】 カスタム投稿タイプのカスタムタクソノミー(カテゴリーとタグ)はfunctions.phpに設定を記述しないと使うことができません。この記事ではWordPressのカスタム投稿タイ...

functions.phpにadd_rewrite_ruleを追加する

さらに、function.phpにadd_rewrite_ruleを書き加えます。

下に記述例を載せておきますが、方法は「works」「works-cat」の部分を、ご自分の場合の「変更したいスラッグ」「変更前のスラッグ」に置き換えて下さい。その他はコピペでOKです。

// -----------------------------------------------------------------
// タクソノミーアーカイブのパーマリンク変更:add_rewrite_ruleの追加
// -----------------------------------------------------------------
function add_custom_rewrite_rules()
{
  add_rewrite_rule('works/([^0-9]+)/?$', 'index.php?works-cat=$matches[1]&taxonomy=works-cat', 'top');
  add_rewrite_rule('works/([^0-9]+)/page/([^/]+)/?$', 'index.php?works-cat=$matches[1]&taxonomy=works-cat&paged=$matches[2]', 'top');
}
add_action('init', 'add_custom_rewrite_rules');

functions.phpにタームリンクの調整を追加する

続いて、functions.phpにタームリンクの調整に関する記述を書き加えます。これはget_terms等で取得されるURLが上記変更によりバグらないようにするための処置です。

下の記述例に対して、「works-cat」「works」の部分を、ご自分の場合の「変更前のスラッグ」「変更したいスラッグ」に置き換えて下さい。その他はコピペでOKです。

// -----------------------------------------------------------------
// タクソノミーアーカイブのパーマリンク変更:タームリンクの調整
// -----------------------------------------------------------------
function rewrite_term_links($termlink, $term, $taxonomy)
{
  return ($taxonomy === 'works-cat' ? home_url('/works' . $term->slug) : $termlink);
}
add_filter('term_link', 'rewrite_term_links', 10, 3);

管理画面の設定>パーリンク>変更を保存

最後に、WordPressの管理画面に戻って、設定>パーマリンクと開いて、「変更の保存」ボタンをクリックします。この操作をしないとパーマリンクに加えた変更が反映されません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

■清水WEB制作代表
■コーディング:WordPress(オリジナルテーマ制作等)・HTML・Sass・FLOCSS・JavaScript(jQuery)等
■集客力:YouTube/Instagram/ブログでそれぞれ登録者数16000人/フォロワー13000人/月間最大アクセス50000PVの集客実績があります
■文章作成:博士号所有、会社員時代は科学雑誌に寄稿していたので文章作成も得意です
■写真技術:Amazon Kindle出版で、写真集・撮影編集解説書を5冊好評発売中です

目次