在编辑器的Wordpress管理菜单中隐藏自定义帖子类型链接

时间:2019-03-09 09:51:51

标签: wordpress

我有一个称为“服务”的自定义帖子类型,我希望该自定义帖子类型链接仅对管理员显示,而不对编辑者显示。

我知道我可以使用“ capability_type”,但是这对我不起作用,因为我不想从编辑器中完全禁用“ Services”自定义帖子类型。 我仍然从自定义管理页面链接到“服务”自定义帖子类型,因此我仍然希望编辑者能够访问它。我只是不希望在管理员菜单中为编辑器显示自动创建的链接,但是自动创建的链接仍必须对管理员显示。

我想也许有一种方法可以在下一行加上一个条件,但是我不太了解php,所以不知道是否可以做到。

'show_in_menu' => true

下面您可以找到我的自定义帖子类型的代码。

register_post_type( 'services',
    array(
      'labels' => array(
        'name' => __( 'Services' ),
        'singular_name' => __( 'Service' )
      ),
      'public' => true,
      'has_archive' => false,
      'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
      'rewrite' => array('slug' => 'services'),
      'show_in_menu'      => true
    )
  );

2 个答案:

答案 0 :(得分:0)

  

通过添加功能来尝试这一操作

register_post_type('services', array(
    'labels' => array(
        'name' => __('Services'),
        'singular_name' => __('Service')
    ),
    'public' => true,
    'has_archive' => false,
    'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
    'rewrite' => array('slug' => 'services'),
    'show_in_menu' => true,
    'capabilities' => array(
        'edit_post' => 'update_core',
        'read_post' => 'update_core',
        'delete_post' => 'update_core',
        'edit_posts' => 'update_core',
        'edit_others_posts' => 'update_core',
        'delete_posts' => 'update_core',
        'publish_posts' => 'update_core',
        'read_private_posts' => 'update_core'
    ),
        )
);

答案 1 :(得分:0)

使用这些:

function wpse28782_remove_menu_items() {
    if( !current_user_can( 'administrator' ) ):
        remove_menu_page( 'edit.php?post_type=quote' );
    endif;
}
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );

根据您的帖子类型名称更改quote