Restringir os Colaboradores para ver apenas seus próprios tipos de postagem personalizados?

4

Para o nosso tipo "Postagens", nossos colaboradores podem ver apenas as próprias postagens, que é o que queremos. Mas, para nossos tipos de postagem personalizados, os colaboradores podem ver todas as postagens, incluindo rascunhos. Existe uma maneira de limitar a visualização das postagens personalizadas para que elas visualizem apenas as próprias postagens, como no tipo "Postagens"?

Editar: Talvez eu não estivesse tão claro sobre o meu problema. Eu quero que os Colaboradores possam ver todos os tipos personalizados (Vídeos, Imagens, etc), mas dentro de cada tipo de personalização eu quero que eles possam ver apenas os seus próprios posts. Então, se eles olharem para os CPT Videos, por exemplo, eles só poderão ver seus próprios vídeos postados, não uma postagem de outra pessoa.

    
por user28330 04.03.2013 / 01:45

1 resposta

7

Você precisa usar o gancho de ação pre_get_posts .

Veja os comentários para obter detalhes e modifique o (s) tipo (s) de postagem personalizado (s) para você:

add_action( 'pre_get_posts', 'filter_cpt_listing_by_author_wpse_89233' );

function filter_cpt_listing_by_author_wpse_89233( $wp_query_obj ) 
{
    // Front end, do nothing
    if( !is_admin() )
        return;

    global $current_user, $pagenow;
    get_currentuserinfo();

    // http://php.net/manual/en/function.is-a.php
    if( !is_a( $current_user, 'WP_User') )
        return;

    // Not the correct screen, bail out
    if( 'edit.php' != $pagenow )
        return;

    // Not the correct post type, bail out
    if( 'portfolio' != $wp_query_obj->query['post_type'] )
        return;

    // If the user is not administrator, filter the post listing
    if( !current_user_can( 'delete_plugins' ) )
        $wp_query_obj->set('author', $current_user->ID );
}

Você notará que a contagem de postagens All | Publicado | Rascunhos precisa ser corrigida.
Veja a solução aqui .

    
por brasofilo 04.03.2013 / 14:20