it-swarm.com.de

Beitragende einschränken, um nur ihre eigenen benutzerdefinierten Beitragstypen anzuzeigen?

Bei unserem Typ "Beiträge" können unsere Mitwirkenden nur ihre eigenen Beiträge sehen, was wir möchten. Bei unseren benutzerdefinierten Beitragstypen können Mitwirkende jeden Beitrag anzeigen, einschließlich Entwürfen. Gibt es eine Möglichkeit, die Anzeige benutzerdefinierter Posts zu beschränken, sodass nur die eigenen Posts angezeigt werden, die dem Typ "Posts" entsprechen?

Edit: Vielleicht war mir mein Problem nicht so klar. Ich möchte, dass die Mitwirkenden alle benutzerdefinierten Typen (Videos, Bilder usw.) sehen können, aber in jedem benutzerdefinierten Typ sollen sie nur ihre eigenen Beiträge sehen können. Wenn sie sich zum Beispiel die CPT-Videos ansehen, können sie nur ihre eigenen geposteten Videos sehen, nicht einen Beitrag von jemand anderem.

4
user28330

Sie müssen den Aktions-Hook pre_get_posts verwenden.

Einzelheiten finden Sie in den Kommentaren, und ändern Sie die benutzerdefinierten Beitragstypen in Ihre eigenen:

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 );
}

Sie werden feststellen, dass die Anzahl der Beiträge All|Published|Drafts muss korrigiert werden.
Siehe Lösung hier .

7
brasofilo