我正在WordPress中创建一个插件。我创建了一个名为“ relationlink”的自定义帖子类型。具有一些自定义功能。这是我用于创建自定义帖子类型的代码:
register_post_type( 'relationlink', array(
'labels' => ...an_array_with_label...,
'description' => __( 'Description.', 'ovasconnect_churches' ),
'public' => false,
'publicly_queryable' => false,
'show_ui' => true,
'show_in_menu' => false,
'query_var' => true,
'rewrite' => array( 'slug' => 'relationlink' ),
'capabilities' => array(
'create_posts' => 'edit_relationlink',
'edit_post' => 'edit_relationlink',
'read_post' => 'view_relationlink',
'delete_post' => 'delete_relationlink',
'edit_posts' => 'edit_relationlink',
'edit_others_posts' => 'edit_relationlink',
'publish_posts' => 'edit_relationlink',
'read_private_posts' => 'edit_relationlink',
'delete_posts' => 'delete_relationlink',
'delete_private_posts' => 'delete_relationlink',
'delete_published_posts' => 'delete_relationlink',
'delete_others_posts' => 'delete_relationlink',
'edit_private_posts' => 'edit_relationlink',
'edit_published_posts' => 'edit_relationlink',
),
'has_archive' => false,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title' ),
'map_meta_cap' => false
));
我没有在菜单中显示它。并使用如下链接创建了自己的菜单,其中包含指向edit.php?post_type=relationlink
的链接:
add_action( 'admin_menu', function() {
add_menu_page('My PluginName', 'My PluginName', 'edit_relationlink', 'parentslug', [$this, 'informationPage'] );
add_submenu_page( 'myparentslug', 'Information', 'Information', 'edit_relationlink', 'parentslug', [$this, 'informationPage'], '', '1' );
add_submenu_page( 'myparentslug', 'RelationLinks', 'RelationLinks', 'edit_relationlink', 'edit.php?post_type=relationlink', null, '', '2' );
});
这很好用。我可以编辑post_type。但是,当我单击“添加新内容”时,我的许可被拒绝了:Sorry, you are not allowed to access this page.
奇怪的是,当我将show_in_menu
设置为true
时,它的工作正常。
我也尝试将show_in_menu
设置为parentslug
,但是我可以编辑但也不能添加。
我的问题
有没有人知道如何在自定义菜单项中仅显示菜单中的链接进行编辑,但是,这样我也可以添加项?
(编辑)
刚刚发现,如果您创建一个具有URL post-new.php?post_type=relationlink
的菜单项,那么一切都很好。但是我不希望它出现在菜单中...
似乎在菜单中需要添加自定义帖子类型。有什么想法吗?