Corsi on-line

WordPress: differenza: tra is_admin e current_user_can

La prima differenza tra gli elementi is_admin() e current_user_can() del core di WordPress sta nel fatto che il primo è un tag condizionale, cioè un costrutto che permette di mostrare un determinato contenuto sulla base del verificarsi di una condizione specifica, mentre il secondo è più propriamente una funzione a cui è possibile passare dei parametri, argomenti invece non richiesti e non supportati da is_admin().

WordPressNonostante il nome ad esso associato, is_admin() in realtà non è stato pensato per rilevare se l’utente corrente è o meno in possesso del ruolo di amministratore, ma svolge il compito di verificare che ad essere visualizzate siano la Dashboard o il Pannello di controllo; operando come una funzione booleana, is_admin() restituisce TRUE nel caso in cui ci si trovi in area amministrativa, FALSE nel caso in cui ad essere visualizzata sia la front-page.

Un semplice esempio relativo all’utilizzo del tag condizionale is_admin() potrebbe essere simile al seguente script finalizzato alla rilevazione dell’area corrente:

if ( is_admin() ) {
     echo "Stai visualizzando l'area di amministrazione di WordPress.";
} else {
     echo "Stai visualizzando il front-end di WordPress.";
}

current_user_can() si basa invece su ciò che l’utente corrente può fare (cioè sui suoi “privilegi” di accesso); per proporre un esempio pratico è possibile riferirsi al parametro manage_options valido per i soli ammnistratori che sono gli unici autorizzati alla gestione completa delle opzioni del Blog engine/CMS. Lo script proposto di seguito presenta una condizione che, a seconda del ruolo associato all’utente corrente, consentirà di visualizzare due diverse voci di menù:

<?php if ( current_user_can( 'manage_options' ) ) { ?>
<li><a href="#tabs-advanced">Impostazioni avanzate</a></li>
<?php } else { ?>
<li><a href="#tabs-basic">Impostazioni di base</a></li>
<?php } ?>

In sostanza, se l’utente corrente è un amministratore (e può quindi gestire pienamente le opzioni di WordPress), il menù proporrà un link alle “Impostazioni avanzate”, gli utenti non Admin come gli Editors avranno invece accesso limitato alle sole “Impostazioni di base”.

Post correlati
I più letti del mese
Tematiche