WodPressのカスタム投稿タイプで404エラーとなる

普段は使わないのですが、仕事でWordPressのカスタム投稿タイプを使う事になりました。そのとき404エラーがでたので調べてみました

コード

カスタム投稿タイプで404が出るコードは以下になります

$custom_posts = array(
  // ブログ
  'notice' => array(
    'name' => 'notice',
    'label' => 'ブログ',
    'supports' => array('title','editor','thumbnail'),
    'default_ttl' => '記事のタイトルを入力してください',
    'taxonomy' => array(
      'notice_category' => array(
        'tax_name' => 'notice_category',
        'tax_label' => 'カテゴリ',
        'tax_default_term' => 'その他',
      ),
    ),
  ),


);

※該当する箇所のみだしています

404エラーとなる

記事を追加して表示をすると404エラーとなります。テンプレートがないとかそういうのではありません。

条件

  • カスタム投稿用テンプレート:有り
  • パーマリンク:カスタム構造
  • プラグイン:Custom Post Type Permalinks
  • カスタム投稿は複数(今回は事前に2つあり)3つめの作成
  • 一つ目のカスタム投稿:カテゴリ表示あり
  • 二つ目のカスタム投稿:カテゴリー表示なし
  • 三つ目のカスタム投稿:カテゴリー表示あり(今回作成するやつ)

パーマリンクを基本にすると表示されます

対策

ネットで載っている対策を色々してみました。結論全部解決にはいたらりませんでした

プラグインの削除→インストール

解決せず。

パーマリンクを更新

何もせずに更新をするだけみたいです。解決せず

flush_rules()の実行

ネットで載っている情報で、flush_rules()の実行することで解決をしたというケースもあったので試しました。解決せず

原因

上記の豊富で全く解決しませんでした。原因はtaxonomyにありました。以下のコードにしたらテンプレートが読み込まれました

$custom_posts = array(
  // ブログ
  'notice' => array(
    'name' => 'notice',
    'label' => 'ブログ',
    'supports' => array('title','editor','thumbnail'),
    'default_ttl' => '記事のタイトルを入力してください',
    'taxonomy' => '',
    ),
  ),

);

タクソノミーのカテゴリを非表示にしたら動きました

対策

パーマリンクの設定を見直す

カスタム投稿でカテゴリを設定したい場合、プラグインを使っている場合は、設定→パーマリンクより「カスタム投稿タイプのパーマリンク設定」があります。これの該当する箇所を以下のように変えます

/%notice_category%/%post_id%/

カテゴリ名/post_idという風にしてます。これをしないと404となります。ご注意ください。逆にこれをちゃんとしていれば404にならず、上のようなよくわからない事をしなくてもすみます

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS