2010-11-08 10 views
28

Sto creando il mio primo plug-in e ho una singola funzione che controlla l'output. Questa funzione ha un output diverso in base al fatto che venga visualizzata o meno dall'amministratore di WordPress rispetto al frontend. C'è un modo per testare facilmente se la mia funzione viene attivata o meno da admin vs frontend?Come verificare se attualmente in Wordpress Admin?

Ho provato a verificare in modo condizionale la stringa della query sul nome del mio nome di "pagina" del plug-in, ma sembra non funzionare su alcuni server/installazioni.

Grazie

risposta

53

Duh, questo era troppo evidente. Per qualche ragione pensavo che questo avesse a che fare con un utente amministratore. if(is_admin()) { ...output my admin stuff....}

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

+0

È possibile contrassegnare la propria risposta come accettata. :) – GmonC

+0

Mi serviva lo stesso. Sono caduto per lo stesso. –

+1

Avviso di avviso Will Robinson: questo codice controlla se ci si trova nell'area di amministrazione, NON se è stato effettuato l'accesso come amministratore !! –

19

Se vuoi sapere se utente corrente è ADMIN, allora si dovrebbe usare questo:

$is_admin = current_user_can('manage_options'); 

mi sono fuorviati dalla risposta di cui sopra, in modo da una piccola nota a impedire agli altri di commettere lo stesso errore.

+0

Sì, penso che questo sembra essere quello giusto che anche il supporto Wordpress mette giù. –

+2

Se non stai lavorando con l'utente corrente puoi usare user_can (1, 'manage_options') con "1" come ID utente. Anche in questo caso, proprio come "current_user_can()" questo non ha nulla a che fare con il controllo se l'utente sta visualizzando e la pagina di amministrazione. –

-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

Penso che current_user_can() sia probabilmente un metodo più efficace, probabilmente non saggio controllare le vars globali di WordPress. –

+2

Corretto Brian. Non dovremmo mai presumere che un ID utente sia un determinato utente che non si occupa di un amministratore. –

11

Nota che is_admin() funziona solo nel back-end. Per qualsiasi parte del plug-in che viene visualizzata sul sito Web pubblico è necessario utilizzare current_user_can().

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

Puoi aggiungere un riferimento per current_user_can ('amministratore')? 'amministratore' non è elencato su https://codex.wordpress.org/Function_Reference/current_user_can –

Problemi correlati