今天早上我刚刚更新到WordPress 3.7,我开始在我的一个自定义帖子类型上收到404错误。我通过一个插件实现了多个CPT。除了一个以外,所有其他CPT都很好。
相同的代码如下:
//注册作者帖子类型
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。 关于如何解决它的任何建议?
答案 0 :(得分:3)
似乎WordPress 3.7并不喜欢将自定义帖子类型定义为author
。将其更改为authors
工作正常。但是,这也需要在wp_posts表中进行更新。
答案 1 :(得分: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();
}
答案 2 :(得分:1)
从WordPress
的菜单Settings->paramlinks
转到paramlink页面并点击保存更改更新设置(不需要更改任何设置)(或者您可能不需要更新设置,只访问paramlinks
页面就足够了),然后尝试查看自定义帖子。它会出现。