前提・実現したいこと
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 クエリーを追加。:チェックなし
希望としては、以下のパーマリンクでページを表示したいです。
- 全ての実績一覧ページ http://aaa.com/works/
- 1つ目のタクソノミー「works_cat」のターム別アーカイブページ http://aaa.com/works/('works_cat'のターム)/
- 2つ目のタクソノミー「works_type」のターム別アーカイブページ http://aaa.com/works/('works_type'のターム)/
- シングルページ http://aaa.com/works/投稿名/
発生している問題・エラーメッセージ
functions.phpにてカスタム投稿の作成コードを記述しておりますが、
以下のコードですと、両方のターム別アーカイブページで404となります。
複数のカスタムタクソノミーを作成した経験があまりなく、心もとないソースコードですが以下に掲載いたします。
該当のソースコード
functions.php
php
1<?php 2 3//カスタム投稿の追加 4add_action( 'init', 'create_post_type' ); 5function create_post_type() { 6 7 /*実績*/ 8 register_post_type( 9 'works', array( 10 11 'labels' => array( 12 'name' => '実績', //管理画面などで表示する名前 13 'singular_name' => '実績', //管理画面などで表示する名前(単数形) 14 'menu_name' => '実績', //管理画面メニューで表示する名前(nameより優先される) 15 'add_new_item' => '新しい実績', //新規作成ページのタイトルに表示される名前 16 'add_new' => '新規追加', //メニューの新規追加ボタンのラベル 17 'new_item' => '新規追加', 18 'edit_item' => '実績を編集', //編集ページのタイトルに表示される名前 19 'view_item' => '編集', //編集ページの「投稿を表示」ボタンのラベル 20 'search_items' => '実績の検索', //一覧ページの検索ボタンのラベル 21 'not_found' => '見つかりません。', //一覧ページに投稿が見つからなかったときに表示 22 'not_found_in_trash' => 'ゴミ箱にはありません。' //ゴミ箱に何も入っていないときに表示 23 ), 24 'descriptions' => '実績の概要', //カスタム投稿ページの概要文 25 'hierarchical' => true, //falseの場合、階層構造なし 26 'public' => true, //ユーザーが内容を投稿する場合true(通常はtrue) 27 'has_archive' => true, //アーカイブページを作成するか否かを設定(trueでindexページを作成), 28 'rewrite' => array( 29 'slug' => 'works', 30 'with_front' => false 31 ), 32 'capability_type' => 'post', 33 'menu_position' => 8, 34 35 //管理画面から投稿できる項目 36 'supports' => array( 37 'title', 38 'editor', 39 'thumbnail', 40 ) 41 ) 42 ); 43 44 /*業種*/ 45 register_taxonomy( 46 'works_cat', 47 'works', 48 array( 49 'hierarchical' => true, 50 'rewrite' => array('slug' => 'works'), 51 'label' => '業種', 52 'public' => true, 53 'show_ui' => true, 54 'query_var' => true, 55 ) 56 ); 57 /*カテゴリー*/ 58 register_taxonomy( 59 'works_type', 60 'works', 61 array( 62 'hierarchical' => true, 63 'rewrite' => array('slug' => 'works'), 64 'label' => 'カテゴリー', 65 'public' => true, 66 'show_ui' => true, 67 'query_var' => true, 68 ) 69 ); 70} 71 72?>
試したこと
当初は以下のように「works_cat」を「カテゴリー」、「works_type」を「業種」として作成し、
カスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%works_cat%/%postname%/」と設定したところ、
「カテゴリー」である「works_cat」のアーカイブページはホームURL(http://aaa.com/)にリダイレクトされ、「業種」である「works_type」のアーカイブページのみ表示されました。
php
1 /*カテゴリー*/ 2 register_taxonomy( 3 'works_cat', 4 'works', 5 array( 6 'hierarchical' => true, 7 'rewrite' => array('slug' => 'works'), 8 'label' => 'カテゴリー', 9 'public' => true, 10 'show_ui' => true, 11 'query_var' => true, 12 ) 13 ); 14 /*業種*/ 15 register_taxonomy( 16 'works_type', 17 'works', 18 array( 19 'hierarchical' => true, 20 'rewrite' => array('slug' => 'works'), 21 'label' => '業種', 22 'public' => true, 23 'show_ui' => true, 24 'query_var' => true, 25 ) 26 );
試しにタクソノミー名を入れ替え、(該当のソースコードの状態となります)
あわせてカスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%works_type%/%postname%/」に変更したところ、
現在の「カテゴリー」である「works_type」のみアーカイブページが表示されました。
この時点でのパーマリンクは以下の通りです。
- 全ての実績一覧ページ http://aaa.com/works/
- 1つ目のタクソノミー「works_cat」のターム別アーカイブページ http://aaa.com/works/('works_cat'のターム)/ →404エラー
- 2つ目のタクソノミー「works_type」のターム別アーカイブページ http://aaa.com/works/('works_type'のターム)/
- シングルページ http://aaa.com/works/('works_type'のターム)/投稿名/
その後、カスタム投稿タイプのパーマリンク設定を「http://aaa.com/works/%postname%/」に変更したところ、
両方のターム別アーカイブページが404エラーとなりました。(質問の前提の状態となります)
そもそもカスタム投稿の書き方が良くない気もするのですが、改善策をご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/10 11:05
2019/12/10 11:30
2019/12/10 12:42 編集
2019/12/10 12:55
2019/12/10 13:10