使用隐藏菜单创建自定义帖子类型

时间:2018-09-02 13:42:57

标签: php wordpress

我正在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的菜单项,那么一切都很好。但是我不希望它出现在菜单中...

似乎在菜单中需要添加自定义帖子类型。有什么想法吗?

0 个答案:

没有答案