10 metodi per personalizzare l’area admin di WordPress

November 21, 2013
wordpress-01

Quando si realizza un progetto per un nuovo cliente utilizzando WordPress spesso si ha la necessità di personalizzare anche l’area di backend. Questo si può fare aggiungendo alcune funzioni al functions.php del nostro tema.

1 Personalizzare la pagina login di WordPress

Il codice da utilizzare per mettere il logo dell’azienda al posto di quello di WordPress sopra il form di login e sostituire il link del logo.

Logo


// modifica del logo nella pagina di login
function custom_login_logo() {
echo '<style type="text/css"><!-- h1 a { background: url('.get_bloginfo('template_directory').'/lib/images/logo.png) 50% 50% no-repeat !important; } --></style>';
}
add_action('login_head', 'custom_login_logo');

Link


//Link del logo sopra login
function loginpage_custom_link() {
return 'http://www.tuosito.it';
}
add_filter('login_headerurl','loginpage_custom_link');
//descrizione link sopra logo login
function change_title_on_logo() {
return 'Grafidea - Grafica e Webdesign';
}
add_filter('login_headertitle', 'change_title_on_logo');

2 Nascondere i widget dell’area admin

Nello script sotto nascondiamo con poche righe di codice tutti i widget agli utenti che non sono amministratori, ma con poco sforzo si può personalizzare cosa far vedere ad ogni categoria di utenti del nostro sito WordPress.

// Funzione da agganciare all' hook azione
function rimozione_widget_bacheca() {
global $wp_meta_boxes, $current_user;
get_currentuserinfo();
if($current_user->roles[0] != "administrator")
{
// Commenti Recenti
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
// Link in entrata
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
// Plugin recenti, aggiornati e segnalazione aggiornamenti
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
// Feed e notizie per sviluppatori WordPress
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
// Altre news
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
// Blocco per post quick press
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
// Bozze recenti
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
}
}
// Aggrega all' hook azione 'wp_dashboard_setup' la nostra funzione
add_action('wp_dashboard_setup', 'rimozione_widget_bacheca' );

3 Rimuovere il logo WordPress dalla barra admin

Con questo semplice script possiamo eliminare il logo WordPress presente sulla sinistra della barra admin.

//rimozione logo wordpress in barra admin
function remove_admin_bar_links() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
}
add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );

4 Modificare i contatti nel profilo utente

Possiamo anche modificare in modo molto semplice i contatti del profilo di ogni utente registrato sul nostro sito.

//modificare i contatti nel profilo utente
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);

5 Nascondere le tab di aiuto e impostazione dello schermo

Nascondere la tab di aiuto e di impostazione dello schermo presente in alto a sinistra del backend di WordPress.

//nascondere la tab di aiuto e di impostazione schermo dell'area admin
function hide_help() {
echo '<style type="text/css">
#contextual-help-link-wrap { display: none !important; }
#screen-options-link-wrap { display: none !important; }
#footer-upgrade { display: none !important; }
</style>';
}
add_action('admin_head', 'hide_help');

6 Eliminare la versione di WordPress dagli script


//rimozione versione wordpress dagli script
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
global $wp_version;
$version_str = '?ver='.$wp_version;
$version_str_offset = strlen( $src ) - strlen( $version_str );
if( substr( $src, $version_str_offset ) == $version_str )
return substr( $src, 0, $version_str_offset );
else
return $src;
}

7 Aggiungere widget nella bacheca

Possiamo velocemente aggiungere dei widget alla bacheca di WordPress in modo da mostrare funzionalità personalizzate per ogni categoria di utenti iscritti al nostro sito.

// funzione di creazione widget e contenuti bacheca
function creazione_widget_bacheca() {
// messaggio o form che si vogliono inserire
echo "Messaggio di benvenuto sulla bacheca";
}
function aggiunta_widget_bacheca() { wp_add_dashboard_widget('example_dashboard_widget', 'Esempio Widget bacheca', 'creazione_widget_bacheca');
}
// Aggancio in 'wp_dashboard_setup'
add_action('wp_dashboard_setup', 'aggiunta_widget_bacheca' );

8 Nascondere il messaggio di aggiornamento di WordPress


add_action('admin_menu','wphideupdate');
function wphideupdate() {
remove_action( 'admin_notices', 'update_nag', 3 );
}

9 Aggiungere o togliere un link dalla barra di WordPress

Possiamo aggiungere un link nella barra in alto di amministrazione.

function link_bar() {
global $wp_admin_bar;
if ( !is_super_admin() || !is_admin_bar_showing() )
return;
$wp_admin_bar->add_menu( array(
'id' => 'diww',
'parent' => 'my-blogs',
'title' => __( 'Titolo del link '),
'href' => admin_url( 'http://wwww.grafideaweb.it' )
) );
}
add_action('admin_bar_menu', 'link_bar');

O possiamo eliminare i link presenti.

function remove_admin_bar_links() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('my-blogs');
$wp_admin_bar->remove_menu('my-account-with-avatar');
}
add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );

10 Inserire una metabox personalizzata

Nella pagina di scrittura di articoli o altri post type possiamo aggiungere dei metabox personalizzati per permettere l’immissioni di dati specifici del nostro post.

//verifica che la funzione venga lanciata al momento appropriato
add_action('add_meta_boxes', function() {
add_meta_box(
'my_metabox', // id della meta box
'TitoloBox', // titolo della meta box
'my_metabox_function', //nome della callback function da eseguire nella metabox
'post_type', // nome del post type al quale aggiungere la meta box
'side', // posizione della metabox (normal, advanced o side)
'default' // priorità della MB, dove verrà posizionata (high, core, default o low)
);
});
function my_metabox_function() {
// recupero informazioni del post corrente
global $post;
//ottengo il valore del meta box se già salvato
$mydata = get_post_meta($post->ID, 'mydata', true);
// proteggo la sessione aggiungendo dei campi nascosti
wp_nonce_field(__FILE__, 'mydata_nonce');  ?>
<label for="cost">Preventivo euro</label>
<input type="text" name="cost_answer" id="cost_answer" value="<?php echo $cost; ?>">
<?php
}
// verifichiamo che la funzione venga lanciata solamente al momento del salvataggio
add_action('save_post', function () {
// ottengo le informazioni relative al post
global $post;
// non salvare la metabox con l'autosalvataggio di wordpress
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
return;
}
// check per la sicurezza:
// verifichiamo che i campi nascosti inseriti con wp_nonce_field()
// siano corretti, in caso contrario non effettuiamo il salvataggio
if ($_POST && wp_verify_nonce($_POST['kldg_nonce'], __FILE__) ) {
// verifico che sia stato inserito un valore nel form
if ( isset($_POST['cost_answer']) ) {
// salvo le informazioni contenute nella MB
update_post_meta($post->ID, 'cost', $_POST['cost_answer']);
}
}
});

Questi sono alcuni metodi per personalizzare la nostra area admin su WordPress e renderla integrata al nostro progetto web.

Ma ci sono tante altri script che ci permettono di personalizzare altri aspetti dell’area di backend.
Ne conosci altri? Sei interessato a qualche altra personalizzazione? Scrivilo nei commenti.

3

Aggiungi la tua opinione

Loading Disqus Comments ...
Loading Facebook Comments ...

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close