La maggior parte dei codici che verranno presentati andranno inseriti all’interno del file  functions.php, di conseguenza sarà necessario crearne uno, se non è già presente, all’interno della cartella del tuo tema WordPress. Questo file viene controllato automaticamente prima che il template venga caricato in modo che tutto il codice venga correttamente eseguito.

Alcuni dei codici presentati invece devono essere inseriti nel file wp-config.php, che si trova nella root della tua installazione di WordPress. Iniziamo!

1. Come rimuovere la barra di amministrazione

La versione 3.1 di WordPress ha introdotto una barra di amministrazione in stile Twitter, utile per modificare rapidamente gli articoli e tornare alla bacheca. Se tuttavia non volessi più vederla, puoi disabilitarla aggiungendo al file functions.php:

add_filter( 'show_admin_bar', '__return_false' );

2. Specificare un intervallo di tempo di auto-salvataggio degli articoli

Quando scrivi un nuovo articolo o una nuova pagina, wordpress effettua l’auto-salvataggio di una bozza ad intervalli di tempo prestabiliti in modo che, in caso di crash del sistema o qualsiasi altro evento catastrofico, il contenuto venga salvato. Si tratta di un’ottima funzionalità; tuttavia potresti ritenere troppo breve l’intervallo in cui vengono salvate le revisioni. Per modificare questo periodo è necessario aggiungere al file wp-config.php:

define('AUTOSAVE_INTERVAL', 600); // 60 * 10, salvataggi ogni 10 minuti

3. Disabilitare l’auto-salvataggio

Se invece ti senti particolarmente fiducioso e ritieni che questa funzioni sia inutile puoi disattivarla completamente aggiungendo al file functions.php

function no_autosave() {
  wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'no_autosave' );

4. Ridurre o disabilitare le revisioni

Le revisioni sono un’altra funzione “salva-vita” di WordPress, grazie alle quali è possibile tornare facilmente e rapidamente ad una precedente versione di un articolo. Tuttavia di default non è impostato alcun limite ad esse cosìcchè con il tempo, se ti dimenticassi di rimuoverle, ti troveresti con un sacco di file inutili a riempire il tuo database. E’ possibile ridurre od eliminare il numero di revisioni salvate aggiungendo al file wp-config.php:

define('WP_POST_REVISIONS', 5); // Effettua massimo 5 revisioni per articolo
define('WP_POST_REVISIONS', false); // Disabilita le revisioni

5. Svuota il cestino automaticamente

Il cestino è stato introdotto dalla versione 2.7 di WordPress, da allora tutti i contenuti prima di essere eliminati vengono riposti in questo spazio in modo che sia possibile recuperare qualsiasi file erroneamente cancellato, così come avviene per i cestini di Windows e MacOS. Una volta svuotato il cestino i files vengono invece distrutti definitivamente. Svuotare il cestino regolarmente permette di mantenere il database più pulito e leggero. Per impostare questa funzioni in modo automatico occorre aggiungere al file wp-config.php:

define('EMPTY_TRASH_DAYS', 5 ); // Svuota il cestino ogni 5 giorni

6. Rimuovere l’editor visuale

Se sei un webdeveloper probabilmente proverai un certo odio verso l’editor “mangia-tag” visuale di WordPress. Sebbene sia possibile disabilitarlo singolarmente per ogni utente andando su Utenti/Il tuo profilo, è possibile rimuovere completamente l’opzione inserendo in functions.php

add_filter('user_can_richedit' , create_function('' , 'return false;') , 50);

7. Modificare il testo del menù di aiuto a discesa

Se guardi in alto a destra del pannello di amministrazione di WordPress troverai una voce chiamata “Aiuto”. In questo box può essere utile inserire delle informazioni personalizzate da mostrare al cliente per cui si sta realizzando un progetto. Inoltre è possibile personalizzare il contenuto a seconda che ci si trovi nella zona di creazione articoli o nella sezione dei commenti. Sempre nel file functions.php occorre inserire:

add_action('load-page-new.php','custom_help_page');
add_action('load-page.php','custom_help_page');
function custom_help_page() {
  add_filter('contextual_help','custom_page_help');
}
function custom_page_help($help) {
  // echo $help; // Togli il commento se vuoi aggiungere il tuo testo dopo il testo di default
  echo "<h5>Testo Personalizzato</h5>";
  echo "<p> L'HTML va qui</p>";
}

Per capire su quale file effettuare l’azione, controlla la barra degli indirizzi nel tuo browser ed aggiungi il prefisso load- prima del nome. Per esempio, se vuoi aggiungere un testo di aiuto al pannello Aggiungi Nuovo Articolo, il cui nome nella barra è post-new.php, allora dovrai utilizzare load-post-new.php come parametro per la funzione add_action mostrata prima.

8. Cambiare le informazioni di Contatto

Nel profilo utente/informazioni contatti si trovano i campi AIM account, Yahoo IM account ecc… E facebook? Twitter? Dove li mettiamo? Per intervenire sui campi da mostrare/rimuovere nella pagina del profilo è necessario inserire nel file functions.php:

function new_contactmethods( $contactmethods ) {
  $contactmethods['twitter'] = 'Twitter'; // Aggiungi Twitter
  $contactmethods['facebook'] = 'Facebook'; // Aggiungi Facebook
  unset($contactmethods['yim']); // Rimuovi Yahoo IM
  unset($contactmethods['aim']); // Rimuovi AIM
  unset($contactmethods['jabber']); // Rimuovi Jabber

return $contactmethods;
}

add_filter('user_contactmethods','new_contactmethods',10,1);

WordPress realizzerà da solo tutte le operazioni necessarie sul database per inserire i nuovi campi e rimuovere quelli vecchi!

9. Cambiare le funzionalità dei vari ruoli

Attraverso questi snippet è possibile, nel caso in cui abbia più autori per il tuo sito, cambiare ciò che ognuno può fare. Ad ogni modo, per semplificarti la vita, in questo caso è meglio ricorrere all’uso di qualche plugin come Role Scoper oppure User Role Editor. Oppure nel caso tu sia un fanatico del codice, l’input per modificare i permessi è il seguente:

$edit_contributor = get_role('contributor'); // Ottieni il ruolo
$edit_contributor->add_cap('upload_files'); // Il Contributor può ora caricare files media
$edit_contributor->remove_cap('delete_posts'); // Il Contributor non può più cancellare i post

Una lista di tutti i ruoli e le funzionalità può essere trovata qui.

10. Controllare ciò che i vari ruoli possono vedere

A seconda del ruolo è possibile mostrare o non mostare alcune funzionalità. Questo può essere fatto usando i conditional tags, ad esempio (functions.php):

if( !is_admin() ) {
  add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
}

Utilizzare is_admin() è una strada, ma è anche possibile fare dei controlli sulle funzionalità dell’utente che si trova in una determinata situazione. Ad esempio:

if( current_user_can('edit_pages') ) {
// Se l'utente può modificare le pagine allora...
}
if( !current_user_can('delete_private_posts') ) {
// Se l'utente non può cancellare articoli privati allora...
}
if( current_user_can('activate_plugins') ) {
// Se l'utente può attivare plugins allora...
}

In questi casi se la condizione è verificata allora verrà eseguita un’operazione altrimenti ignorata.

Traduzione libera e rivisitata di “10 Techniques for Customizing the WordPress Admin Panel” di Filip Stefansson