Se l'amministratore ha effettuato l'accesso

2 ago 2013, 19:46:29
Visualizzazioni: 43K
Voti: 12

Sappiamo che is_admin() controlla se l'URL corrente appartiene alla DASHBOARD (MA non verifica se l'utente è ADMIN).

Quindi, uso questa funzione per rilevare se l'amministratore ha effettuato l'accesso in WordPress:

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

tuttavia, questa non è la soluzione ideale. Esiste una funzione integrata, come wp_is_administrator()?

2
Commenti

if(current_user_can('administrator'))

Howdy_McGee Howdy_McGee
2 ago 2013 20:06:25

Ciò che il tuo codice suggerisce è che usi una sorta di bootstrap per caricare le funzioni di WP al di fuori di WP, ma anche in questo caso puoi usare ciò che dice Howdy_McGee -> vedi documentazione

JMau JMau
2 ago 2013 20:19:45
Tutte le risposte alla domanda 2
0
25

current_user_can accetterà un nome di ruolo ma, sfortunatamente, il comportamento con i ruoli non è del tutto coerente.

Il seguente codice dovrebbe funzionare ed è leggermente più semplice di quello che hai.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // l'utente è un amministratore
}
2 ago 2013 21:41:36
0
10

Sembra che il modo più semplice sia in effetti utilizzare current_user_can in questo modo:

if( current_user_can( 'administrator' ) ){} // solo se amministratore

Questo sembra un duplicato.

13 feb 2019 22:16:37