it-swarm.com.de

Erlauben Sie Benutzern mit Autorenrolle, einen benutzerdefinierten Beitragstyp zu bearbeiten

Ich habe dieses bereits codierte Projekt, das einen benutzerdefinierten Beitragstyp mit einem bestimmten Verhalten aufweist: Es ist nur ein einzelner Beitrag, und Administratoren/Redakteure/Autoren können nur seinen Inhalt bearbeiten. Der Inhalt ist eine benutzerdefinierte Datentabelle. Administratoren und Redakteure können problemlos bearbeiten. Ich möchte, dass Autoren diesen einzelnen Beitrag auch bearbeiten können, aber ich kann scheinbar nicht herausfinden, wie. Der Code lautet wie folgt:

add_action('init', 'register_post_types');
    function register_post_types(){

    register_post_type('post_type_uo', array(
            'labels' => array(
            'name'               => 'uo Articles', 
            'singular_name'      => 'uo', 
            'add_new'            => 'Add uo', 
            'edit_item'          => 'Edit Post', 
            'view_item'          => 'View Post', 
            'search_items'       => 'Find Post', 
            'not_found'          => 'Not Found', 
            'not_found_in_trash' => 'Not Found', 
            'parent_item_colon'  => '', 
            'menu_name'          => 'uo', 
        ),
    'public' => true, 
    'menu_position' => 4, 
    'exclude_from_search' => true,  
    'has_archive' => false,  
    'rewrite' => array('slug' => 'daily-uo'), 
    'taxonomies'    => array( 'dailies' , 'category'),
    'menu_icon'     => 'dashicons-chart-line', // custom icon
    'capabilities' => array('create_posts'  => false,),
    'map_meta_cap' => true,
    'supports'      => array('title')
    ));
    }

ich habe versucht, ein Capabilities-Array hinzuzufügen und dann das Plugin "Members" installiert.

'capabilities' => array(
        'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout
        'read_posts' => 'read_uos',
        'edit_post' => 'edit_uo',
        'edit_posts' => 'edit_uos',
        'published_posts' => 'publish_uo',
        'edit_published_posts' => 'edit_uo_p',
        'edit_others_posts ' => 'edit_uo_others'
      ),

ich kann die Funktionen auf der Rollenseite des Plugins sehen und sie auswählen, habe aber noch keinen Bearbeitungszugriff für Benutzer mit der Athor-Rolle.

Schließlich habe ich über das Plugin eine neue Rolle -uo_Author- erstellt, die die richtigen (??) Berechtigungen gibt, aber immer noch kein Glück hat

irgendwelche Ideen?

1
JoePanpi

Registrieren Sie "Tageszeitungen" als Taxonomie.

Der Codex für " Posttyp registrieren " lautet "Auch wenn Sie beim Erstellen des Posttyps eine Taxonomie registrieren, müssen Sie die Taxonomie dennoch explizit mit register_taxonomy () registrieren und definieren."

PS: Ich hätte dies als Kommentar zu Ihrer Frage hinzugefügt, wenn ich in der Lage gewesen wäre.

AKTUALISIERUNG: 22. August 2018
OK. Beginnen wir diese Diskussion noch einmal. Sie do müssen die Taxonomie hinzufügen, aber das ist nicht der Grund, warum Ihre Autoren Ihre Beiträge nicht sehen/bearbeiten können.

In Ihrer Funktion zu register_post_type gab es einige Syntaxfehler in Ihren "Fähigkeiten", die ausreichten, um einen Autor daran zu hindern, den uo-Beitrag zu sehen. Bearbeiten Sie daher die "Funktionen" so, dass sie mit den folgenden übereinstimmen:

'capabilities' => array( 'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout 'read_posts' => 'read_uos', 'edit_post' => 'edit_uo', 'edit_posts' => 'edit_uos', 'publish_posts' => 'publish_uos', 'edit_published_posts' => 'edit_published_uos', 'edit_others_posts' => 'edit_others_uos' ),

Weisen Sie mithilfe des Members-Plugins alle Funktionen für "uo Articles" zu, obwohl Sie die verschiedenen Funktionen "delete" und "private" möglicherweise nicht gewähren möchten.

Sie müssen die zusätzliche Autorenrolle nicht hinzufügen. In der Tat könnte es verwirrender sein, dass es sich lohnt.

0
Tedinoz