サポート » プラグイン » custom post type permalinks プラグインで404エラー

  • 解決済 mini32

    (@mini32)


    custom post type permalinksプラグインで質問です。

    caseというカスタム分類を登録しており、プラグインの設定で
    case/%postname%/
    「カスタム分類のアーカイブのパーマリンクを変更する。」にチェックを入れています。

    パーマリンクは最終的に
    /case/case-cat/hogehoge/
    このようになるように設定しているのですが、
    数分後に見てみると、いつの間にか404エラーになってしまいます。
    再度、設定画面から「変更を保存」を押すと正常に見れますが、また時間が経つと404が出てしまいます。

    ちなみに
    /case-cat/hogehoge/
    ではいつでも閲覧ができる状態になっています。

    なぜ一定期間経つと404になるのでしょうか。

    functions.phpには以下のように書いてます。

    function case_postype() {
      $labels = array(
        'name' => '事例',
        'singular_name' => '事例',
        'add_new' => '新規追加',
        'add_new_item' => '新規事例を追加',
        'edit_item' => '事例を編集',
        'new_item' => '新規事例',
        'view_item' => '事例を表示',
        'search_items' => '事例を検索',
        'not_found' =>  '投稿された事例はありません',
        'not_found_in_trash' => 'ゴミ箱に事例はありません。',
        'parent_item_colon' => '',
      );
      $args = array(
        'label' => __('case'),
        'labels' => $labels,
        'public' => true,
        'menu_position' => 5,
        'supports'=> array('title','author') ,
        'query_var' => true,
        'hierarchical' => false,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'case', 'with_front' => false ),
      );
      register_taxonomy(
      'case-cat',
      'case',
      array(
      'hierarchical' => true,
      'update_count_callback' => '_update_post_term_count',
      'label' => '事例の種類',
      'singular_label' => '事例の種類',
      'public' => true,
      'show_ui' => true
      )
      );
      register_post_type( 'case', $args);
    }
    add_action( 'init', 'case_postype' );
6件の返信を表示中 - 1 - 6件目 (全6件中)
  • その他にプラグインなどはインストールされていますか?

    はい、
    ・All In One SEO PACK
    ・Broken Link Checker
    ・カスタムフィールドテンプレート
    ・Google XML Sitemaps
    ・Intuitive Custom Post Order
    ・マルチデバイススイッチャー
    ・MW WP Form
    ・PS Taxonomy Expander
    ・Search Regex
    ・WP-PageNavi
    ・WP-Lightbox2
    をインストールしています。

    自動で動いてそうな、Broken Link CheckerやSitemapsを停止して試してみたのですが
    変わりませんでした。

    質問ばかりですみませんが、

    • 一定時間で404になると言うことですが、そのときに、「カスタム分類のアーカイブのパーマリンクを変更する。」の値は変わっていますでしょうか?
    • Custom Post Type Permalinksのバージョンはいくつでしょうか?

    バージョンは、1.0.4です。

    管理画面上での「カスタム分類のアーカイブのパーマリンクを変更する。」はチェック入ったままとなっています。
    404になった時点での、.htaccessの日付も変わってないので、他に見る箇所があれば教えて頂きたいです。

    ※現在はとりあえずプラグインを外してデフォルトのパーマリンクで対処してます。

    ということは、恐らく意図しないタイミングで、flush_rewrite_rulesが実行され、パーマリンクの再構築が発生しているということかと思います。
    もし、functions.php等でflush_rewrite_rulesを記述している場合は、削除して下さい。

    あと、プラグイン作っておいて言うのもなんですが、カスタムタクソノミーのパーマリンクを、

    /case/case-cat/hogehoge/

    とするだけであれば、register_taxonomyのパラメーターの $args[‘rewrite’][‘slug’]に /case/case-cat/を設定すれば、プラグインを使わなくても実現できます。

    function case_postype() {
    	$labels = array(
    		'name'               => '事例',
    		'singular_name'      => '事例',
    		'add_new'            => '新規追加',
    		'add_new_item'       => '新規事例を追加',
    		'edit_item'          => '事例を編集',
    		'new_item'           => '新規事例',
    		'view_item'          => '事例を表示',
    		'search_items'       => '事例を検索',
    		'not_found'          => '投稿された事例はありません',
    		'not_found_in_trash' => 'ゴミ箱に事例はありません。',
    		'parent_item_colon'  => '',
    	);
    	$args   = array(
    		'label'         => __( 'case' ),
    		'labels'        => $labels,
    		'public'        => true,
    		'menu_position' => 5,
    		'supports'      => array( 'title', 'author' ),
    		'query_var'     => true,
    		'hierarchical'  => false,
    		'has_archive'   => true,
    		'rewrite'       => array( 'slug' => 'case', 'with_front' => false ),
    	);
    	register_taxonomy(
    		'case-cat',
    		'case',
    		array(
    			'hierarchical'          => true,
    			'update_count_callback' => '_update_post_term_count',
    			'label'                 => '事例の種類',
    			'public'                => true,
    			'rewrite'               => array( 'slug' => 'case/case-cat', 'with_front' => false ),
    			'show_ui'               => true
    		)
    	);
    	register_post_type( 'case', $args );
    }
    
    add_action( 'init', 'case_postype' );

    register_taxonomyのパラメーターの $args[‘rewrite’][‘slug’]に /case/case-cat/を設定すれば、プラグインを使わなくても実現できます。

    そうなんですね、知りませんでした。
    この方法で対応したいと思います!
    ありがとうございました!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「custom post type permalinks プラグインで404エラー」には新たに返信することはできません。