Si el administrador ha iniciado sesión

2 ago 2013, 19:46:29
Vistas: 43K
Votos: 12

Sabemos que is_admin() verifica si la URL actual pertenece al PANEL DE CONTROL (PERO no verifica si el usuario es ADMINISTRADOR).

Entonces, uso esta función para detectar si un administrador ha iniciado sesión en WordPress:

function is_admin_user(){
  require_once(ABSPATH.'wp-includes/pluggable.php'); return current_user_can('create_users'); //o 'manage_options'
}

sin embargo, esa no es la solución ideal. ¿Existe alguna función incorporada, como wp_is_administrator()?

2
Comentarios

if(current_user_can('administrator'))

Howdy_McGee Howdy_McGee
2 ago 2013 20:06:25

Lo que sugiere tu código es que estás usando algún tipo de bootstrap para cargar funciones de WP fuera de WP, pero incluso en este caso puedes usar lo que dice Howdy_McGee -> ver documentación

JMau JMau
2 ago 2013 20:19:45
Todas las respuestas a la pregunta 2
0
25

current_user_can aceptará un nombre de rol pero, lamentablemente, el comportamiento con los roles no es completamente consistente.

Lo siguiente debería funcionar y es un poco más simple que lo que tienes.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // el usuario es un administrador
}
2 ago 2013 21:41:36
0
10

Parece que la forma más simple sería de hecho usar current_user_can de esta manera:

if( current_user_can( 'administrator' ) ){} // solo si es administrador

Esto parece un duplicado.

13 feb 2019 22:16:37