I am managing a WordPress network and would like to add the unfiltered_html user capability to the already predefined user role of Admin. In a standard installation of WordPress the Admin account would already have this capability but in an MU installation only Super Admins are afforded this capability. WordPress Roles and Capabilities.
How can I augment the Admin role from within a theme or plugin?
You can use WP_Role class,
// 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 );
So to address your original question about how to enable Admins to enter SCRIPT and IFRAME tags into post content, you’re looking for the ‘unfiltered_html’ capability, which in Multisite is only granted to Super Admins.
// get the the role object
$admin_role = get_role( 'administrator' );
// grant the unfiltered_html capability
$admin_role->add_cap( 'unfiltered_html', true );
or you can run this once in your functions:
/* 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!
));