¿Cómo verificar si actualmente en WordPress Admin?

3 minutos de lectura

Estoy creando mi primer complemento y tengo una sola función que controla la salida. Esta función tiene un resultado diferente en función de si se ve o no desde el administrador de WordPress frente a la interfaz. ¿Hay alguna manera de probar fácilmente si mi función se activa o no desde el administrador frente a la interfaz?

Intenté verificar condicionalmente la cadena de consulta con el nombre de la “página” de mi complemento, pero parece fallar en algunos servidores/instalaciones.

Gracias

Duh, esto era demasiado obvio. Por alguna razón, estaba pensando que esto tenía que ver con un usuario administrador.
if(is_admin()) { ...output my admin stuff....}

http://codex.wordpress.org/Function_Reference/is_admin

  • Necesitaba lo mismo. Me enamoré de lo mismo.

    – Frank Noke

    27 de febrero de 2012 a las 6:29

  • Advertencia Advertencia Will Robinson: ¡este código verifica si está en el área de administración, NO si ha iniciado sesión como administrador!

    – Brian C.

    21 de marzo de 2013 a las 8:45

  • @BrianC – Correcto. No estaba tratando de determinar si el usuario inició sesión. Mi pregunta original era sobre tratar de determinar si la página actual se mostraba en la interfaz o en el administrador. Entonces, esta es la función correcta si desea hacer algo solo mientras está en el área de administración.

    – Mate

    21 de marzo de 2013 a las 13:21

  • is_admin() también devuelve verdadero para las solicitudes Ajax de front-end?

    – zdenekca

    5 de marzo de 2015 a las 15:07

Si quieres saber si usuario actual ES ADMINISTRADORentonces deberías usar esto:

   $is_admin = current_user_can( 'manage_options' );

Me equivoqué con la respuesta anterior, así que una pequeña nota para evitar que otros cometan el mismo error.

  • Sí, creo que este parece ser el adecuado que incluso el Soporte de WordPress lo descarta.

    – Salocin.TEN

    15 de abril de 2013 a las 9:11

  • Si no está trabajando con el usuario actual, puede usar user_can (1, ‘manage_options’) con “1” como ID de usuario. Nuevamente, al igual que “current_user_can ()”, esto no tiene nada que ver con verificar si el usuario está viendo y administrando la página.

    –Ryan Bayne

    25 de septiembre de 2013 a las 15:21

avatar de usuario
Carlos Jaime

Tenga en cuenta que is_admin() solo funciona en el backend. Para cualquier parte del complemento que se muestre en el sitio web público, debe usar current_user_can().

if ( current_user_can( 'administrator' ) ) {
  // your code goes here
}

  • ¿Puede agregar una referencia para current_user_can(‘administrator’) ? ‘administrador’ no figura en codex.wordpress.org/Function_Reference/current_user_can

    – tim-nosotros

    19 de abril de 2015 a las 1:30


  • ADVERTENCIA: si un admin-ajax.php la solicitud está llegando (desde la interfaz), is_admin() todavía devolverá VERDADERO

    – sMyles

    30 oct 2020 a las 19:53

Ver es_admin_solicitud() para una solución de trabajo.

<?php 
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID

//usually admin user id is 1 if its not working check admin user id from wp_users table
if($user_id == 1) {
   //write your stuff
}
?>

  • Creo que current_user_can() es probablemente un método más efectivo, probablemente no sea prudente verificar las variables globales de WordPress.

    – Brian C.

    21 de marzo de 2013 a las 10:16

  • Correcto Brian. Nunca debemos asumir que una ID de usuario es un usuario determinado, no importa un administrador.

    –Ryan Bayne

    25 de septiembre de 2013 a las 15:12

  • Creo que current_user_can() es probablemente un método más efectivo, probablemente no sea prudente verificar las variables globales de WordPress.

    – Brian C.

    21 de marzo de 2013 a las 10:16

  • Correcto Brian. Nunca debemos asumir que una ID de usuario es un usuario determinado, no importa un administrador.

    –Ryan Bayne

    25 de septiembre de 2013 a las 15:12

¿Ha sido útil esta solución?