Corsi on-line

Nascondere gli amministratori di WordPress

In questo breve post vedremo come sia possibile definire una semplice funzione attraverso la quale rendere “invisibile” un amministratore di WordPress agli altri amministratori; in pratica verrà proposta una procedura con la quale non rendere visibile all’interno dell’elenco degli utenti l’Admin che vogliamo tenere “nascosto”. Un’operazione utile nel caso in cui si desideri creare una sorta di “controllore” che possa agire indipendentemente da tutti gli altri soggetti abilitati che abbiano la possibilità di manipolare i contenuti e le impostazioni di un blog.

WordPressSostanzialmente il nostro intervento dovrà essere apportato a carico del file “functions.php” del tema corrente, esso consisterà in pratica nella definizione di un action hook; nel caso specifico passeremo alla funzione add_action() soltanto due parametri, il nome dell’hook e quello della funzione personalizzata da utilizzare:

add_action('hide_admin','hide_my_admin');
function hide_my_admin($user_search) {
global $current_user;
$username = $current_user->user_login;
if ($username == 'adminA' OR $username == 'adminB') {
global $wpdb;
$user_search->query_where = str_replace('WHERE 1=1',
"WHERE 1=1 AND {$wpdb->users}.user_login != 'MYadmin'",$user_search->query_where);
}

L’esempio proposto prevede l’esistenza di tre amministratori: “adminA”, “adminB” e “MYadmin”, l’ultimo è quello che vogliamo nascondere agli altri due; per cui la funzione hide_my_admin() stabilisce che se dovesse essere loggato uno dei due admin tra “adminA” e “adminB”, la query che permette di visualizzare tutti gli utenti definiti estrarrà ogni nominativo registrato nel database tranne “MYadmin” (..AND {$wpdb->users}.user_login != 'MYadmin'..).

Non essendo visibile agli altri amministratori (che naturalmente potrebbero essere anche più di due), quello “nascosto” non potrà essere nemmeno cancellato in caso di conflitti con gli altri utenti.

Post correlati
I più letti del mese
Tematiche