I am trying to load a custom styles sheet but only for administrators
My code works fine by itself:
function admin_style() {
wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
add_action('admin_enqueue_scripts', 'admin_style');
However, when I try to create a conditional based on the role, it can not get it to fire:
function role_exists( $role ) {
if( ! empty( $role ) ) {
return $GLOBALS['wp_roles']->administrator( $role );
}
return false;
}
function admin_style() {
wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
if( role_exists( 'administrator' ) ) {
return
add_action('admin_enqueue_scripts', 'admin_style');
}
I am trying to load a custom styles sheet but only for administrators
My code works fine by itself:
function admin_style() {
wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
add_action('admin_enqueue_scripts', 'admin_style');
However, when I try to create a conditional based on the role, it can not get it to fire:
function role_exists( $role ) {
if( ! empty( $role ) ) {
return $GLOBALS['wp_roles']->administrator( $role );
}
return false;
}
function admin_style() {
wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
if( role_exists( 'administrator' ) ) {
return
add_action('admin_enqueue_scripts', 'admin_style');
}
Share
Improve this question
edited May 23, 2019 at 20:46
Eric D.
asked May 23, 2019 at 20:39
Eric D.Eric D.
32 bronze badges
1 Answer
Reset to default 1This is what I use, tested and works...
function wpse_admin_styles(){
$user = wp_get_current_user();
if( !empty($user) && count(array_intersect(["administrator"], (array) $user->roles ))) {
wp_enqueue_style(
'admin_css',
get_stylesheet_directory_uri() . '/css/admin-styles.css', array(), filemtime( get_stylesheet_directory() . '/css/admin-styles.css')
);
}
}
add_action('admin_enqueue_scripts', 'wpse_admin_styles');