カスタムタクソノミーページのURLをカスタマイズする方法

WEBサイトを運用していると記事が増えてきて、どこに何の記事があるのかわからない..となってしまう可能性があります。
そんなときに便利なのがカテゴリーやタグです!

今回は、WEBサイトで多用するカテゴリーのうち、カスタムタクソノミーの一覧ページのURL変更方法をご紹介します。

カスタムタクソノミーとは何か? については、こちらの記事で紹介しています

カスタム投稿とカスタムタクソノミーのデフォルトURL

例えば、blogというカスタム投稿を作成し、blog_catというカスタムタクソノミーを作成した場合URLは以下のようになります。

URL
投稿一覧ページ/blog/
カスタムタクソノミーの投稿一覧ページ/blog_cat/ターム名/

ブログにカテゴリーを作成したのに、URLに/blog/がなく、/blog_cat/があるのは何か違和感がある..ということもあるかと思います。

カスタムタクソノミー投稿一覧ページのURLを/blog/ターム名/に変更したいと思います。

カスタムタクソノミー投稿一覧ページのURL変更方法

カスタム投稿とカスタムタクソノミーの追加

カスタム投稿はプラグインで作成することも多いのですが、今回はfunctions.phpに記述して追加していきます。

function add_post_type() {
  // ブログを追加する
  register_post_type('blog',
    array(
      'label'=>'ブログ',
      'labels'=>array(
        'name'=>'ブログ',
        'singular_name'=>'ブログ',
        'add_new_item'=>'投稿を追加',
        'new_item'=>'投稿',
        'view_item'=>'投稿を表示',
        'not_found'=>'投稿は見つかりませんでした',
        'not_found_in_trash'=>'ゴミ箱に投稿はありません。',
        'search_items'=>'投稿を検索'
      ),
      'description'=>'ブログ',
      'public'=>true,
      'show_ui'=>true,
      'query_var'=>true,
      'rewrite'=>array(
        'with_front'=>false,
        'hierarchical'=>false
      ),
      'hierarchical'=>false,
      'exclude_from_search'=>false,
      'supports'=>array(
        'title', //タイトルを有効化
        'editor', //本文を有効化
        'thumbnail' //アイキャッチを有効化
      ),
      'has_archive'=>true,
    )
  );
  // ブログカスタムタクソノミー、カテゴリタイプ
  register_taxonomy(
    'blog_cat', //タクソノミーのスラッグ
    'blog', //追加するカスタム投稿のスラッグ
      array(
        'hierarchical'=>true,
        'update_count_callback'=>'_update_post_term_count',
        'label'=>'カテゴリー',
        'singular_label'=>'カテゴリー',
        'public'=>true,
        'show_ui'=>true,
        'rewrite' => array( 'slug' => 'blog' ), //変更後のスラッグ
      )
  );
}
add_action('init', 'add_post_type');

ハイライトしている45行目の記述がスラッグ変更のための記述です。

 add_rewrite_ruleの追加

さらにルールの記述を行なっていきます。

function add_custom_rewrite_rules() {
    add_rewrite_rule('blog/([^0-9]+)/?$', 'index.php?blog_cat=$matches[1]&taxonomy=blog_cat', 'top');
    add_rewrite_rule('blog/([^0-9]+)/page/([^/]+)/?$', 'index.php?blog_cat=$matches[1]&taxonomy=blog_cat&paged=$matches[2]', 'top');
  }
add_action('init', 'add_custom_rewrite_rules');

難しそうなコードが並んでいて心が折れそうですが..。
ご自身のケースにあわせて/blog/部分と/blog_cat/部分を書き換えていただければそのまま使用できます!

【重要】パーマリンク設定の再保存

上記のfunctions.phpをサーバーにアップしてサイトを確認しても、パーマリンクは変更前のままです。

WordPress管理画面のパーマリンク設定部分を変更せずにそのまま「変更を保存」を押してください。

この工程を忘れると、変更が確認できずに、コードの記述を何度も変更してみたり..ということになってしまいますので、絶対に忘れないようにしてください!

まとめ

普段はデフォルトのURLをそのまま使用してしまうことも多いですが、カスタマイズしてみるもの良いですね!

こちらの記事もおすすめ

この記事をシェアする

関連記事

  • 2023.12.30

    案件を切り替える拡張機能「Project Manager」が便利!

    コーディング

  • 2023.12.29

    記事タイトルを行数で制御するCSS

    CSS

    コーディング

  • 2023.12.29

    CSSのホバーを工夫するようになった話

    コーディング

    制作

おすすめ記事

  • 好きなフォントは?現役WEBデザイナーに聞いてみた!

    2022.06.01

    デザイナーなら好きなフォントの1つや2つあるでしょ?現役WEBデザイナーに好きなフォント聞いてみた!

    デザイン

    制作

  • 2022.05.31

    超簡単!GoogleMapの色をサイトにあわせて変える方法

    コーディング

    制作

  • 2022.04.28

    【カメラ初心者向け】物撮りが上手くなるコツ ~食べ物編~

    その他

    制作

×