it-swarm.com.de

Wie füge ich einer Benutzerrolle eine Funktion hinzu?

Ich verwalte ein Wordpress-Netzwerk und möchte der bereits vordefinierten Benutzerrolle des Administrators die Benutzerfunktion "unfiltered_html" hinzufügen. In einer Standardinstallation von Wordpress verfügt das Administratorkonto bereits über diese Funktion, in einer MU-Installation wird diese Funktion jedoch nur Super-Admins gewährt. Wordpress Rollen und Fähigkeiten .

Wie kann ich die Administratorrolle innerhalb eines Themas oder Plugins erweitern?

12
Jonnybojangles

Sie können 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 Admins SCRIPT- und IFRAME-Tags in Post-Content eingeben können, suchen Sie nach der Funktion "ungefiltert_html", 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 Funktionen 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!
));
12
Philip

Damit eine andere Rolle als Super Admin oder Admin (abhängig davon, ob die Wordpress-Installation eine Netzwerk-/MU-Instanz ist oder nicht) einem Beitrag oder Kommentar ungefiltertes HTML hinzufügen kann, muss der Wordpress-KSES-Filter entfernt werden.

Überprüfen Sie, ob ein Benutzer eine bestimmte Funktion hat.

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

Wenn ja, dann entfernen Sie KSES

kses_remove_filters();

Diese Funktionalität ist bereits in ungefiltert-mu integriert, sodass Administratoren und Redakteure ungefiltertes HTML hinzufügen können.

2
Jonnybojangles