WordPress自定义文章类型无法创建新文章的问题求助
解决自定义文章类型(CPT)编辑页空白及REST API 404问题
你的问题核心是REST控制器类设置错误,导致WordPress无法正确注册该CPT的REST路由,进而使Gutenberg编辑器加载失败。以下是具体修复步骤:
1. 修正CPT注册代码中的关键错误
你的代码里rest_controller_class参数被错误设置为'm',这个参数需要指定有效的REST控制器类名(默认使用WP_REST_Posts_Controller即可)。同时还有两个优化点:
- 修正
menu_icon为有效的Dashicons图标(比如dashicons-qrcode更贴合QR菜单场景) - 修正
labels中的menu_name,让后台菜单显示更准确
修改后的完整代码:
// Register Custom Post Type function qrmenu() { $labels = array( 'name' => _x( 'QR Menüler', 'Post Type General Name', 'egmenu' ), 'singular_name' => _x( 'QR Menü', 'Post Type Singular Name', 'egmenu' ), 'menu_name' => __( 'QR Menüler', 'egmenu' ), // 修正菜单显示名称 'name_admin_bar' => __( 'QR Menü', 'egmenu' ), 'archives' => __( 'QR Menü Arşivleri', 'egmenu' ), 'attributes' => __( 'QR Menü Özellikleri', 'egmenu' ), 'parent_item_colon' => __( 'Üst Öğe:', 'egmenu' ), 'all_items' => __( 'Tüm QR Menüler', 'egmenu' ), 'add_new_item' => __( 'Yeni QR Menü Ekle', 'egmenu' ), 'add_new' => __( 'Yeni Ekle', 'egmenu' ), 'new_item' => __( 'Yeni QR Menü', 'egmenu' ), 'edit_item' => __( 'QR Menüyü Düzenle', 'egmenu' ), 'update_item' => __( 'QR Menüyü Güncelle', 'egmenu' ), 'view_item' => __( 'QR Menüyü Görüntüle', 'egmenu' ), 'view_items' => __( 'QR Menülerini Görüntüle', 'egmenu' ), 'search_items' => __( 'QR Menü Ara', 'egmenu' ), 'not_found' => __( 'Bulunamadı', 'egmenu' ), 'not_found_in_trash' => __( 'Çöpte Bulunamadı', 'egmenu' ), 'featured_image' => __( 'Öne Çıkan Resim', 'egmenu' ), 'set_featured_image' => __( 'Öne çıkan resim ayarla', 'egmenu' ), 'remove_featured_image' => __( 'Öne çıkan resmi kaldır', 'egmenu' ), 'use_featured_image' => __( 'Öne çıkan resim olarak kullan', 'egmenu' ), 'insert_into_item' => __( 'Öğeye ekle', 'egmenu' ), 'uploaded_to_this_item' => __( 'Bu öğeye yüklendi', 'egmenu' ), 'items_list' => __( 'Öğeler listesi', 'egmenu' ), 'items_list_navigation' => __( 'Öğeler listesi gezintisi', 'egmenu' ), 'filter_items_list' => __( 'Öğeler listesini filtrele', 'egmenu' ), ); $args = array( 'label' => __( 'QR Menü', 'egmenu' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'page-attributes', 'post-formats' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-qrcode', // 修正为有效图标 'show_in_admin_bar' => true, 'show_in_nav_menus' => false, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => true, 'publicly_queryable' => true, 'capability_type' => 'post', 'show_in_rest' => true, 'rest_base' => 'm', // 保留自定义REST基础路径 'rest_controller_class' => 'WP_REST_Posts_Controller', // 修正为默认REST控制器类 ); register_post_type( 'm', $args ); } add_action( 'init', 'qrmenu', 0 );
2. 刷新固定链接规则
修改代码后,进入WordPress后台:
- 导航到 设置 → 固定链接
- 无需修改任何设置,直接点击保存更改按钮,这会刷新WordPress的rewrite规则,确保REST路由正确注册。
3. 测试修复效果
- 尝试创建新的
QR Menü文章,编辑器应该能正常加载 - 访问REST API端点
http://example.com/wp-json/wp/v2/m/11?context=edit&_locale=user,应该返回正常的文章数据而非404错误
内容的提问来源于stack exchange,提问作者Emirhan Gümüş
相关产品推荐
相关产品推荐

