質問: ### 前提・実現したいこと WordPressにてカスタム投稿でページを作成中に404が発生しております。 仮称サイトURL:http://aaa.com/ カスタム投稿名:works 1つ目のカスタムタクソノミー : works_cat (業種) 2つ目のカスタムタクソノミー : works_type (カテゴリー) 使用プラグイン:「Custom Post Type Permalinks」 カスタム投稿タイプのパーマリンク設定: http://aaa.com/works/%postname%/ has_archive: true / with_front: false カスタマイズされたカスタムタクソノミーのパーマリンクを使用する。:チェックなし カスタムタクソノミーのアーカイブに、 post_type クエリーを追加。:チェックなし 希望としては、以下のパーマリンクでページを表示したいです。 1. 全ての実績一覧ページ http://aaa.com/works/ 2. 1つ目のタクソノミー「works_cat」のターム別アーカイブページ http://aaa.com/works/('works_cat'のターム)/ 3. 2つ目のタクソノミー「works_type」のターム別アーカイブページ http://aaa.com/works/('works_type'のターム)/ 4. シングルページ http://aaa.com/works/投稿名/ ### 発生している問題・エラーメッセージ functions.phpにてカスタム投稿の作成コードを記述しておりますが、 以下のコードですと、両方のターム別アーカイブページで404となります。 複数のカスタムタクソノミーを作成した経験があまりなく、心もとないソースコードですが以下に掲載いたします。 ### 該当のソースコード functions.php ``` array( 'name' => '実績', //管理画面などで表示する名前 'singular_name' => '実績', //管理画面などで表示する名前(単数形) 'menu_name' => '実績', //管理画面メニューで表示する名前(nameより優先される) 'add_new_item' => '新しい実績', //新規作成ページのタイトルに表示される名前 'add_new' => '新規追加', //メニューの新規追加ボタンのラベル 'new_item' => '新規追加', 'edit_item' => '実績を編集', //編集ページのタイトルに表示される名前 'view_item' => '編集', //編集ページの「投稿を表示」ボタンのラベル 'search_items' => '実績の検索', //一覧ページの検索ボタンのラベル 'not_found' => '見つかりません。', //一覧ページに投稿が見つからなかったときに表示 'not_found_in_trash' => 'ゴミ箱にはありません。' //ゴミ箱に何も入っていないときに表示 ), 'descriptions' => '実績の概要', //カスタム投稿ページの概要文 'hierarchical' => true, //falseの場合、階層構造なし 'public' => true, //ユーザーが内容を投稿する場合true(通常はtrue) 'has_archive' => true, //アーカイブページを作成するか否かを設定(trueでindexページを作成), 'rewrite' => array( 'slug' => 'works', 'with_front' => false ), 'capability_type' => 'post', 'menu_position' => 8, //管理画面から投稿できる項目 'supports' => array( 'title', 'editor', 'thumbnail', ) ) ); /*業種*/ register_taxonomy( 'works_cat', 'works', array( 'hierarchical' => true, 'rewrite' => array('slug' => 'works'), 'label' => '業種', 'public' => true, 'show_ui' => true, 'query_var' => true, ) ); /*カテゴリー*/ register_taxonomy( 'works_type', 'works', array( 'hierarchical' => true, 'rewrite' => array('slug' => 'works'), 'label' => 'カテゴリー', 'public' => true, 'show_ui' => true, 'query_var' => true, ) ); } ?> ``` ### 試したこと 当初は以下のように「works_cat」を「カテゴリー」、「works_type」を「業種」として作成し、 カスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%works_cat%/%postname%/」と設定したところ、 「カテゴリー」である「works_cat」のアーカイブページはホームURL(http://aaa.com/)にリダイレクトされ、「業種」である「works_type」のアーカイブページのみ表示されました。 ``` /*カテゴリー*/ register_taxonomy( 'works_cat', 'works', array( 'hierarchical' => true, 'rewrite' => array('slug' => 'works'), 'label' => 'カテゴリー', 'public' => true, 'show_ui' => true, 'query_var' => true, ) ); /*業種*/ register_taxonomy( 'works_type', 'works', array( 'hierarchical' => true, 'rewrite' => array('slug' => 'works'), 'label' => '業種', 'public' => true, 'show_ui' => true, 'query_var' => true, ) ); ``` 試しにタクソノミー名を入れ替え、(該当のソースコードの状態となります) あわせてカスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%works_type%/%postname%/」に変更したところ、 現在の「カテゴリー」である「works_type」のみアーカイブページが表示されました。 この時点でのパーマリンクは以下の通りです。 1. 全ての実績一覧ページ http://aaa.com/works/ 2. 1つ目のタクソノミー「works_cat」のターム別アーカイブページ http://aaa.com/works/('works_cat'のターム)/ →404エラー 3. 2つ目のタクソノミー「works_type」のターム別アーカイブページ http://aaa.com/works/('works_type'のターム)/ 4. シングルページ http://aaa.com/works/('works_type'のターム)/投稿名/ その後、カスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%postname%/」に変更したところ、 両方のターム別アーカイブページが404エラーとなりました。(質問の前提の状態となります) そもそもカスタム投稿の書き方が良くない気もするのですが、改善策をご教示いただけますと幸いです。
回答: 予想通り、カスタム投稿タイプ追加の記述を変更しましたところ自己解決いたしました。