2010-11-08 16 views
28

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 está viendo 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 admin frente a la interfaz?¿Cómo comprobar si actualmente está en Wordpress Admin?

He intentado verificar condicionalmente la cadena de consulta con el nombre de mi complemento "página", pero parece fallar en algunos servidores/instalaciones.

Gracias

Respuesta

53

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

+0

Puede marcar su propia respuesta como aceptada. :) – GmonC

+0

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

+1

Advertencia advertencia Will Robinson: este código comprueba si estás en el área de administración, NO si has iniciado sesión como administrador. –

19

Si desea saber si usuario actual es admin, entonces debería usar esto:

$is_admin = current_user_can('manage_options'); 

me mal guiados por la respuesta anterior, por lo que una pequeña nota para evitar que otros cometan el mismo error.

+0

Sí, creo que este parece ser el correcto que incluso el soporte de Wordpress lo pone abajo. –

+2

Si no está trabajando con el usuario actual puede usar user_can (1, 'manage_options') con "1" como ID de usuario. De nuevo, al igual que "current_user_can()" esto no tiene nada que ver con verificar si el usuario está viendo y la página de administración. –

-3
<?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 
} 
?> 
+2

Creo que current_user_can() es probablemente un método más efectivo, probablemente no sea aconsejable comprobar los vars globales de WordPress. –

+2

Corregir Brian. Nunca debemos suponer que una identificación de usuario es un determinado usuario, no importa un administrador. –

11

Tenga en cuenta que is_admin() solo funciona en el back-end. 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 
} 
+0

¿Puede agregar una referencia para current_user_can ('administrator')? 'administrador' no aparece en https://codex.wordpress.org/Function_Reference/current_user_can –

Cuestiones relacionadas