Wie man eine Fähigkeit zu einer Benutzerrolle hinzufügt?

Ich verwalte ein WordPress-Netzwerk und möchte die ungefiltered_html-Benutzerfunktion zur bereits vordefinierten Benutzerrolle von Admin hinzufügen. In einer Standardinstallation von WordPress würde das Admin-Konto diese Fähigkeit bereits haben, aber in einer MU-Installation werden nur Super-Admins diese Fähigkeit gewährt. WordPress Rollen und Fähigkeiten .

Wie kann ich die Admin-Rolle innerhalb eines Designs oder Plugins erweitern?

Solutions Collecting From Web of "Wie man eine Fähigkeit zu einer Benutzerrolle hinzufügt?"

Sie können die WP_Role- class verwenden,

// get the the role object $role_object = get_role( $role_name ); // add $cap capability to this role object $role_object->add_cap( $capability_name ); // remove $cap capability from this role object $role_object->remove_cap( $capability_name ); 

Um Ihre ursprüngliche Frage zu beantworten, wie Administratoren die Eingabe von SCRIPT- und IFRAME-Tags in Post-Content aktivieren können, suchen Sie nach der ‘ungefilterten_HTML’-function, die in Multisite nur Super-Admins gewährt wird.

 // get the the role object $admin_role = get_role( 'administrator' ); // grant the unfiltered_html capability $admin_role->add_cap( 'unfiltered_html', true ); 

oder Sie können dies einmal in Ihren functionen ausführen:

 /* Roles & Capabilities */ add_role('professional', 'Professional User', array( 'read' => true, // True allows that capability, False specifically removes it. 'edit_posts' => true, 'delete_posts' => true, //'edit_published_posts' => true, //'publish_posts' => true, //'edit_files' => true, 'upload_files' => true //last in array needs no comma! )); 

Um eine andere Rolle als Super Admin oder Admin zuzulassen (abhängig davon, ob die WordPress-Installation eine Netzwerk- / MU-Instanz ist oder nicht), um ungefiltertes HTML zu einem Beitrag oder Kommentar hinzuzufügen, muss der WordPress ‘KSES-Filter entfernt werden.

Überprüfen Sie, ob ein Benutzer über eine bestimmte function verfügt.

 if ( current_user_can( 'unfiltered_html' ) ) { … } 

Wenn ja, dann entfernen Sie KSES

 kses_remove_filters(); 

Diese functionalität ist bereits in ungefilterter Form enthalten, sodass Administratoren und Editoren ungefiltertes HTML hinzufügen können.