Wie man ungefiltertes HTML in einer wordpress Multisite Installation erlaubt

Ich versuche, eine benutzerdefinierte Rolle in einer WordPress-Umgebung mit mehreren Standorten zu erstellen. Diese Rolle hat die gleichen Fähigkeiten wie ein Admin, kann aber auch ungefiltertes HTML wie Super Admins einsetzen. Ich habe erfolgreich die Rolle erstellt und unfiltered_html auf “true” gesetzt, aber der Texteditor streift weiterhin Iframes und andere HTML-Elemente ab. Unten ist mein PHP-Code für die neue Rolle, die ich “Entwickler” genannt habe.

function add_developer() { //remove role if it already exists if( get_role('developer') ){ remove_role( 'developer' ); } //custom user role for unfiltered_html $result = add_role('developer', __('Developer' ), array( 'read' => true, 'activate_plugins' => true, 'delete_others_pages' => true, 'delete_others_posts' => true, 'delete_pages' => true, 'delete_posts' => true, 'delete_private_pages' => true, 'delete_private_posts' => true, 'delete_published_pages' => true, 'delete_published_posts' => true, 'edit_dashboard' => true, 'edit_others_pages' => true, 'edit_others_posts' => true, 'edit_pages' => true, 'edit_posts' => true, 'edit_private_pages' => true, 'edit_private_posts' => true, 'edit_published_pages' => true, 'edit_published_posts' => true, 'edit_theme_options' => true, 'export' => true, 'import' => true, 'list_users' => true, 'manage_categories' => true, 'manage_links' => true, 'manage_options' => true, 'manage_comments' => true, 'promote_users' => true, 'publish_pages' => true, 'publish_posts' => true, 'read_private_pages' => true, 'read_private_posts' => true, 'remove_users' => true, 'switch_themes' => true, 'upload_files' => true, 'unfiltered_html' => true ) ); if ( null !== $result ) { echo 'Yay! New role created!'; } else { echo 'Oh... the basic_contributor role already exists.'; } } 

Ich arbeite in einem Team, um eine riesige Website mit Tausenden von Seiten zu konvertieren, und möchte es vermeiden, jedem einen super Admin-Zugang zu geben. Gibt es trotzdem, dass ich den HTML-Filter für nur bestimmte Benutzerrollen vermeiden kann? Wenn nicht, gibt es das für bestimmte Benutzer? Ich möchte vermeiden, core zu ändern, und nichts dagegen habe, alle Filterung zu entfernen. Ich teste das gerade in meiner functions.php-Datei meines Themas, werde aber irgendwann ein Plugin dazu schreiben.

Ich bin mir der Sicherheitsrisiken bewusst, die vorhanden sein werden, weil die Benutzer Javascript eingeben können, aber mein Team ist bereit, damit zu leben, wenn wir nicht explizit dem gesamten Team den Zugriff auf Superadmin gewähren müssen.

Jede Hilfe wird sehr geschätzt!

Solutions Collecting From Web of "Wie man ungefiltertes HTML in einer wordpress Multisite Installation erlaubt"

Das hat mich auch eine Weile verblüfft. Nicht gerade eine Lösung für dein Problem, aber das sollte dich auf den Weg bringen.

 add_action( 'admin_init', 'my_kses_remove_filters' ); function publica3_kses_remove_filters() { $current_user = wp_get_current_user(); if ( my_user_has_role( 'administrator', $current_user ) ) kses_remove_filters(); } function my_user_has_role( $role = '', $user = null ) { $user = $user ? new WP_User( $user ) : wp_get_current_user(); if ( empty( $user->roles ) ) return; if ( in_array( $role, $user->roles ) ) return true; return; } 

Diese Aktion entfernt die Filter für Administratoren. Zuerst erhält es die Rolle des aktuellen Benutzers und wenn die Rolle “Administrator” ist, entfernt es die Filter beim Bearbeiten von Inhalten.

Diese Lösung ist stark von dieser Seite abhängig .