WordPress自定义文章类型跳转异常:编辑页点击菜单链接跳转到普通文章页
解决WordPress自定义文章类型编辑/创建链接重定向到普通文章的问题
先看你给出的代码片段,我发现几个可能导致跳转异常的关键点,一步步来排查修复:
1. 修正无效参数:show_in_nav → show_in_menu
你代码里写的'show_in_nav' => true是WordPress不识别的无效参数,自定义文章类型控制后台菜单显示的正确参数是show_in_menu,参数错误会直接导致菜单链接生成混乱,赶紧改成:
'show_in_menu' => true,
2. 补充关键参数,避免链接冲突
你的$args里缺少几个核心参数,这也是跳转错误的常见诱因:
capability_type:定义自定义文章类型的权限标识,默认是post(和普通文章共享权限),建议单独设置为publication,配合map_meta_cap使用更规范:'capability_type' => 'publication',rewrite:设置独立的固定链接slug,避免和普通文章的链接规则冲突:'rewrite' => array( 'slug' => 'publications' ),supports:指定编辑页面的基础功能(比如标题、编辑器),虽然不直接影响跳转,但能保证编辑页正常显示:'supports' => array( 'title', 'editor', 'thumbnail' ),
3. 规范标签(Labels)的单复数形式
虽然这不是跳转的直接原因,但标签不规范会导致后台显示混乱,把单数名称修正为正常形式:
$labels = array( 'name' => 'Publications', 'singular_name' => 'Publication', 'edit_item' => 'Edit Publication', 'add_new' => 'Create Publication', 'add_new_item' => 'Create New Publication' );
4. 刷新固定链接规则
修改自定义文章类型配置后,必须让WordPress重新生成重写规则:
- 登录后台→设置→固定链接
- 不用改任何设置,直接点击「保存更改」按钮即可
完整修正后的代码示例
add_action( 'init', 'register_publication_post_type' ); function register_publication_post_type() { $labels = array( 'name' => 'Publications', 'singular_name' => 'Publication', 'edit_item' => 'Edit Publication', 'add_new' => 'Create Publication', 'add_new_item' => 'Create New Publication' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'map_meta_cap' => true, 'hierarchical' => false, // 补全你之前省略的层级设置,false表示非层级,true表示类似页面的层级结构 'capability_type' => 'publication', 'rewrite' => array( 'slug' => 'publications' ), 'supports' => array( 'title', 'editor', 'thumbnail' ) ); register_post_type( 'publication', $args ); }
额外排查点(如果以上步骤无效)
- 插件冲突:暂时禁用所有第三方插件,测试链接是否恢复正常
- 主题干扰:切换到默认主题(比如Twenty Twenty-Four),排查主题是否修改了自定义文章类型的规则
- 注册时机:确保自定义文章类型的注册代码是在
init钩子中执行的(如上面示例),不要在更早的钩子中注册
内容的提问来源于stack exchange,提问作者markus
相关产品推荐
相关产品推荐

