Frage

Für einen meiner benutzerdefinierten Beitragstypen möchte ich, dass ein bestimmter Benutzer vorhandene Beiträge bearbeiten kann, die vom Administrator erstellt wurden, aber nicht in der Lage sind, neue Beiträge hinzuzufügen.

Wie kann das getan werden?

Wenn ich die Benutzerrolle definiere, die nicht in der Lage ist, veröffentlichen zu können, können sie weiterhin einen neuen Beitrag hinzufügen und zur Überprüfung einreichen.

War es hilfreich?

Lösung

Sie müssen so etwas tun:

function hide_buttons() {
    global $current_screen;

    if($current_screen->id == 'edit-post' && !current_user_can('publish_posts')) {
        echo '<style>.add-new-h2{display: none;}</style>';  
    }
}
add_action('admin_head','hide_buttons');

Sehen: http://erisds.co.uk/wordpress/spotlight-wordpress-admin-mu-remove-add-new-pages-or-posts-link als Referenz

Andere Tipps

Die vorherige Antwort verbirgt den Menüelement nur mit CSS, und wie @ezejieldfm betont, wird die Benutzer nicht angehalten eigentlich Beiträge hinzufügen können.

Stattdessen müssen Sie bei der Registrierung Ihres benutzerdefinierten Post -Typs die festlegen create_posts Wert zu do_not_allow (oder false in WordPress -Versionen unter 4,5) und entscheidend das festlegen map_meta_cap zu true.

register_post_type( 'custom_post_type_name', array(
    'capability_type' => 'post',
        'capabilities' => array(
        'create_posts' => 'do_not_allow', // Prior to Wordpress 4.5, this was false
    ),
    'map_meta_cap' => true, //  With this set to true, users will still be able to edit & delete posts
));

Wenn map_meta_cap ist ausgelassen, es ist standardmäßig false und obwohl Sie die Fähigkeit deaktiviert haben Neue hinzufügen Beiträge können Sie auch nicht vorhandenen bearbeiten oder löschen. Stellen Sie daher sicher, dass Sie diesen Wert eingeben.

Voller Kredit geht an Diese Antwort auf Stack Overflow.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top