サポート » 使い方全般 » taxonomy.phpの404エラー

  • 解決済 nogud

    (@nogud)


    いつもお世話になっております。

    wordpressでCPT UIを使い、カスタム投稿を2つ作成しました。

    http://xxx.jp/news
    http://xxx.jp/gallery

    アーカイブページは両方とも、正常に表示されました。

    ただ、タームページ一覧はnewsは表示されるのですが、galleryだけなぜか表示がされず、404.phpが読み込まれてしまいます。

    http://xxx.jp/news/xxx →表示ok
    http://xxx.jp/gallery/xxx →404.phpが表示

    パーマリンクの設定にはCustom Post Type Permalinksを使っており、
    一般的な設定→カスタム構造には
    /%newscat%/%year%%monthnum%%day%%hour%%minute%%second%.html

    また、それぞれカスタム投稿の設定には、

    news →
    /%newscat%/%year%%monthnum%%day%%hour%%minute%%second%.html
    gallery →
    /%gallerycat%/%year%%monthnum%%day%%hour%%minute%%second%.html

    という風に設定しております。

    一般的な設定→カスタム構造のところをnewscatではなくgallerycatにするとgalleryのページのターム一覧は正常に表示され、newsのターム一覧は404.phpを読み込むという挙動になります。

    また、function.phpにはadd rewrite ruleを追加しております。

    //Add RewriteRule
    function my_custom_post_type_permalinks_set($termlink, $term, $taxonomy){
    	return str_replace('/'.$taxonomy.'/', '/', $termlink);
    }
    add_filter('term_link', 'my_custom_post_type_permalinks_set',11,3);

    どなたかご意見頂けると助かります。

    よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    URLを見て、それが newsなのか、galleryなのか明確な区別ができないと正しく動作しません。現状のカスタム投稿の設定では、URLから最初のディレクトリ部分が、%newscat% なのか、%gallerycat% なのか判定できません。

    構造的に明確にしたいのであれば、設定のいずこかに両者を明確に区別できる固有の箇所(カスタム投稿名など)が必要になるはずです。

    jim912様

    ご返信ありがとうございます。

    明確に区別できる固有の箇所ということですが、
    現状パーマリンクの設定で、newsの場合は、

    http://xxx.jp/news [ /%newscat%/%year%%monthnum%%day%%hour%%minute%%second%.html ]

    という風になっております。[]は入力エリアです。

    この[]の前のカスタム投稿名がそれになるのでしょうか?

    お答えになっていなかったら申し訳ないです。。

    よろしくお願いいたします。

    自己解決しましたので、備忘録がわりに。。

    CPT UIをつかっていたのですが、その設定に問題がありました。
    ポイントとしては、

    ・カスタム投稿設定の階層をfalseに。
    ・タクソノミー設定のカスタムリライトスラッグを空欄にせず、紐づくカスタム投稿の名前を入れる。(この場合gallery)
    ・タクソノミー設定のRewrite Hierarchicalをfalseに。

    上記3つを設定したところ、404がなくなりtaxonomy.phpを読み込むようになりました。

    jim912様お付き合いいただきありがとうございました。

    こちらで解決済みとさせていただきます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「taxonomy.phpの404エラー」には新たに返信することはできません。