it-swarm.com.de

Verhindern, dass die Autorenrolle alle Beiträge im benutzerdefinierten Beitragstyp bearbeitet?

Ich dachte, die Autorenrolle darf nur Beiträge bearbeiten, die von diesem Autor erstellt wurden. Das funktioniert in Posts und Pages, aber ich habe einen benutzerdefinierten Post-Typ erstellt und der Autor kann ALLE Posts in diesem Post-Typ bearbeiten. Müssen Sie für benutzerdefinierte Beitragstypen etwas Besonderes tun, damit sich die Autorenrolle normal verhält?

Ich habe versucht, diesen Code zu verwenden, den ich bei einer anderen Frage gefunden habe, aber er hat ihn für mich nicht behoben:

function to_parse_query_useronly( $wp_query ) {
    if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
        if ( !current_user_can( 'publish_posts' ) ) {
            global $current_user;
            $wp_query->set( 'author', $current_user->id );
        }
    }
}
add_filter('parse_query', 'to_parse_query_useronly' );

Vielen Dank!

2
LBF

Sie sollten Ihre gewünschten Funktionen bei der Registrierung des Beitragstyps angeben.

Justins Artikel hier ist gut für benutzerdefinierte Beitragstypen: http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress

Wenn Sie Ihren benutzerdefinierten Beitragstyp registrieren, können Sie dies als Standardfunktion für Beiträge festlegen, z.

'capability_type'    => 'post',

oder Standardfähigkeiten für Seiten sein, z.

'capability_type' => 'page',

oder legen Sie Ihren eigenen Fähigkeitstyp mit globalen Steuerelementen fest oder gehen Sie über ein bestimmtes Array, z.

/* Global control over capabilities. */
'capability_type' => 'super_duper',

/* Specific control over capabilities. */
'capabilities' => array(
'edit_post' => 'edit_super_duper',
'edit_posts' => 'edit_super_dupers',
'edit_others_posts' => 'edit_others_super_dupers',
'publish_posts' => 'publish_super_dupers',
'read_post' => 'read_super_duper',
'read_private_posts' => 'read_private_super_dupers',
'delete_post' => 'delete_super_duper',
),
3
Monkey Puzzle