【WordPress】カスタム投稿タイプのパーマリンクを思い通りに変更する方法

こんにちは,インターンの近藤です.
カスタム投稿タイプのパーマリンクを変更する時,なかなか思い通りにいかず苦戦したので,今回は,「ターム別記事一覧(taxonomy.php)」「single-スラッグ名.php」対象にパーマリンクを変更する方法についてまとめたいと思います.

デフォルトのパーマリンク設定

まず.カスタム投稿タイプのデフォルトパーマリンクを見ていきましょう
今回のカスタム投稿タイプ,カスタムタクソノミー,ターム,記事詳細のスラッグ名は以下とします.(全部で4種類)

  • カスタム投稿タイプ:paraluxblog
  • カスタムタクソノミー:paralux-cat
  • ターム:blog
  • 記事詳細:article

階層構造は以下のようになっています.

「タクソノミー?ターム?って何だっけ」という人は,以下の記事がおすすめです.

カスタム投稿タイプ記事一覧(archive-paraluxblog.php)

https://サイト名/カスタム投稿名
https://paralux.co.jp/paraluxblog

ターム別記事一覧(taxonomy.php)

https://サイト名/カスタムタクソノミー名/ターム名
https://paralux.co.jp/paralux-cat/blog

ターム別記事一覧には,カスタム投稿名(paraluxblog)は入りません

記事詳細(single-paraluxblog.php)

https://サイト名/カスタム投稿名/記事詳細
https://paralux.co.jp/paraluxblog/article

記事詳細には,カスタムタクソノミー名(paralux-cat),ターム名(blog)は入りません.

カスタム投稿タイプ記事一覧は,変更する必要はあまりないと思います.
今回は,ターム別記事一覧(taxonomy.php)記事詳細(single-paraluxblog.php)のパーマリンクを変更していきます.

記事詳細(single-paraluxblog.php)パーマリンク変更方法

記事詳細のパーマリンク変更について実践していきます.

デフォルトのパーマリンク

https://サイト名/カスタム投稿名/記事詳細
https://paralux.co.jp/paraluxblog/article

目標のパーマリンク

今回は,記事詳細をID表示に設定していきます.

https://サイト名/カスタム投稿名/記事ID
https://paralux.co.jp/paraluxblog/1

STEP1:プラグイン「Custom Post Type Permalinks」をインストール

プラグインを使用すれば,簡単に設定することができます.

左メニューの「プラグイン」から

「新規追加」を選択

「custom type permalinks」を検索するとプラグインが出てきます.

STEP2:パーマリンクを変更

左メニュー「設定」→「パーマリンク設定」

プラグインをインストールすると,項目が増えているのでparaluxblogの部分に「/%post_id%/」を追加

変更後のパーマリンク

変更後のパーマリンクは以下のようになります.

https://サイト名/カスタム投稿名/記事ID
https://paralux.co.jp/paraluxblog/1

ターム別記事一覧(taxonomy.php)パーマリンク変更方法

それでは,ターム別記事一覧のパーマリンク変更について実践していきます.

デフォルトパーマリンク

https://サイト名/カスタムタクソノミー名/ターム名
https://paralux.co.jp/paralux-cat/blog

目標のパーマリンク

ターム別記事一覧のパーマリンクに,カスタム投稿名(newsやblog)を含めたい場面を想定し,以下のパーマリンクを目標に設定していきます.

https://サイト名/カスタム投稿名/ターム名
https://サイト名/paraluxblog/blog

カスタムタクソノミーのスラッグ名をカスタム投稿名に変更して目標のパーマリンクを設定していきます.

functions.phpの中に以下のように記述します

	register_taxonomy(
		'paralux-cat',
		'paraluxblog',
		array(
			'hierarchical' => true,
            'label' => 'カテゴリー',
            'show_ui' => true,
            'query_var' => true,
            'public' => true,
			'rewrite' => array('slug'=>'paraluxblog'),//paralux-catを変更
		)
	);

rewrite部分で,パーマリンクを変更することで,カスタムタクソノミーをカスタム投稿名に変更できます.

変更後のパーマリンク

変更後のパーマリンクは以下のようになります.

https://サイト名/カスタム投稿名/ターム名
https://サイト名/paraluxblog/blog

最後に

今回は,カスタム投稿タイプのパーマリンクを変更する方法についてまとめました.次回もよろしくお願いします.