1

今朝 WordPress 3.7 にアップデートしたところ、カスタム投稿タイプの 1 つで 404 エラーが発生し始めました。1 つのプラグインを介して複数の CPT を実装しています。他のすべての CPT は、1 つを除いて正常に動作しています。

同じコードを以下に示します。

// 投稿者投稿タイプを登録

function custom_post_author() {
 $labels = array(
'name' => 'Authors',
'singular_name' => 'Author',
    'add_new' => 'Add New',
    'add_new_item' => 'Add New Author',
    'edit_item' => 'Edit Author',
    'new_item' => 'New Author',
    'all_items' => 'All Authors',
    'view_item' => 'View Author',
    'search_items' => 'Search Authors',
    'not_found' =>  'No authors found',
    'not_found_in_trash' => 'No authors found in Trash',
    'parent_item_colon' => '',
    'menu_name' => 'Authors'
  );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'authors' ),
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => null,
    'menu_icon' => plugins_url( 'images/authors.png', dirname( __FILE__ )),
    'supports' => array( 'title', 'thumbnail', 'comments')
  );

  register_post_type( 'author', $args );
}
add_action( 'init', 'custom_post_author' );

CPT はバックエンドに表示されますが、フロントエンドで投稿を表示すると 404 が表示されます。解決方法について何か提案はありますか?

4

3 に答える 3

2

非常によく似たエラーが発生しました。カスタム投稿タイプの特定のページに移動できませんでした。パーマリンク設定を更新しても役に立ちませんでした。少しデバッグしたところ、カスタム投稿タイプの書き換えが $wp_rewrite->rewrite_rules() 配列に設定されていないことがわかりました。

私のカスタム投稿タイプはすべてプラグイン内に登録されています。その後、プラグインのアクティブ化/非アクティブ化に関するルールをフラッシュする必要があるというドキュメントを読んだことがあることを思い出しました ( http://codex.wordpress.org/Function_Reference/flush_rewrite_rulesを参照)。

そこで、すべてのカスタム投稿タイプを登録する関数に flush_rewrite_rules() を追加して問題を修正しました。これも役立つと思います!

function register_my_custom_post_types()
{
  register_post_type( ... );

  // flush the rewrite_rules after registering the post types
  flush_rewrite_rules();
}
于 2013-10-25T19:17:31.003 に答える