Restringir o tipo de postagem personalizada apenas à função de administrador do site

13

Como posso remover esse tipo de postagem personalizada da exibição no painel para usuários que não são administradores?

/* Add Websites Custom Post Type */
add_action( 'init', 'create_website_type' );
function create_website_type() {

    register_post_type( 'website',
        array(
            'labels' => array(
                'name' => __( 'Websites' ),
                'singular_name' => __( 'Website' ),
                'add_new' => __( 'Add New Website' ),
                'add_new_item' => __( 'Add New Website' ),
                'edit' => __( 'Edit Website' ),             
                'edit_item' => __( 'Edit Website' ),                
                'new_item' => __( 'Add New Website' ),              
                'view' => __( 'View Website' ),         
                'view_item' => __( 'View Website' ),                    
                'search_items' => __( 'Search Websites' ),  
                'not_found' => __( 'No Websites Found' ),
                'not_found_in_trash' => __( 'No Websites found in Trash' ),                                         
            ),
            'description' => __('Websites to be shown in Resources section.'),
            'public' => true,
            'show_ui' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'menu_position' => 20,
            'supports' => array('title', 'editor'),
            'can_export' => true        
        )
    ); 
    remove_post_type_support('website','editor'); 
}
    
por urok93 12.06.2012 / 13:00

1 resposta

10

register_post_type() aceita um parâmetro capabilities em seus argumentos. Veja get_post_type_capabilities() para possíveis valores. Dos comentários:

  

Por padrão, sete chaves são aceitas como parte da matriz de recursos:

     
  • edit_post , read_post e delete_post são meta capacidades, que são então   geralmente mapeado para capacidades primitivas correspondentes dependendo da   contexto, que seria o post sendo editado / lido / apagado e o usuário ou   papel sendo verificado. Assim, essas capacidades geralmente não seriam concedidas   diretamente para usuários ou funções.

  •   
  • edit_posts - Controla se os objetos desse tipo de postagem podem ser editados.

  •   
  • edit_others_posts - Controla se objetos deste tipo pertencentes a outros usuários podem ser editados. Se o tipo de postagem não suportar um autor, isso se comportará como edit_posts .
  •   
  • publish_posts - Controla os objetos de publicação desse tipo de postagem.
  •   
  • read_private_posts - Controla se objetos privados podem ser lidos.
  •   

Estes quatro recursos primitivos são verificados no núcleo em vários   Localizações. Existem também outras sete capacidades primitivas que são   não referenciada diretamente no núcleo, exceto em map_meta_cap() , o que leva   os três recursos meta acima mencionados e os traduz em   uma ou mais capacidades primitivas que devem então ser verificadas   o usuário ou função, dependendo do contexto.

     
  • read - Controla se os objetos deste tipo de postagem podem ser lidos.
  •   
  • delete_posts - Controla se os objetos desse tipo de postagem podem ser excluídos.
  •   
  • delete_private_posts - Controla se objetos privados podem ser excluídos.
  •   
  • delete_published_posts - Controla se os objetos publicados podem ser excluídos.
  •   
  • delete_others_posts - Controla se os objetos pertencentes a outros usuários podem ser excluídos. Se o tipo de postagem não suportar um autor, isso se comportará como delete_posts .
  •   
  • edit_private_posts - Controla se objetos privados podem ser editados.
  •   
  • edit_published_posts - Controla se objetos publicados podem ser editados.
  •   

Esses recursos adicionais são usados apenas em map_meta_cap() . Portanto,   eles são atribuídos apenas por padrão se o tipo de postagem for registrado com   o argumento 'map_meta_cap' definido como true (o padrão é false ).

Em seus argumentos de registro, adicione:

'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'
),
    
por fuxia 12.06.2012 / 13:28