Page 1

Home » Web Design

Modi care e personalizzare WordPress attraverso 20 Snippets 06/11/2019 Web Design, Wordpress Autore: Emilio Petrozzi

Gli snippets WordPress di solito vengono aggiunti nel le function.php del tema utilizzato. La loro nalità principale è quella di modi care le funzionalità di base fornite da WordPress. Funzionalità di base che lo rendono un CMS piuttosto semplice da utilizzare, ma spesso per gli utenti alle prime armi, magari non non esperti di tecnologia, può rivelarsi troppo complesso da poter gestire. In questo articolo vedremo apportare alcune modi che che di fatto sempli cano il sistema mediante la disabilitazione o la rimozione di alcune aree del CMS non necessarie per l'utente non amministratore. In tal modo lo possiamo rendere meno complesso e più amichevole per l'utente nale. Gli snippets di seguito ci permetteranno di controllare quasi tutti gli aspetti dell'area di amministrazione di WordPress e di personalizzarli a bene cio del livello di usabilità. Esistono ovviamente molti plugin che ottengono gli stessi risultati di questi snippets, ma modi cando il codice si ottiene una gestione delle varie funzionalità più immediata e nella maggior parte dei casi non sarà necessario aggiornarli periodicamente come invece accade per i plugin.

Tali modi che sarà possibile implementarle, oltre che attraverso i vari hook di WordPress, anche attraverso la modi ca del le .htaccess e delle varie query che interessano il database MySQL.


Disabilitazione della possibilità per gli utenti di disattivare i plugin WordPress Questo snippet è particolarmente utile se abbiamo assegnato ad un'utente i privilegi di attivazione / disattivazione dei plugin, di fatto consentendogli di aggiungere nuovi plug-in. Ma se il sito che abbiamo creato richiede alcuni plug-in di base per funzionare, tali plugin ovviamente non dovono essere mai disattivati. Il codice seguente rimuoverà i collegamenti "Disattiva" da qualsiasi plug-in che riteniamo fondamentale, oltre a rimuovere i collegamenti "Modi ca" da tutti i plug-in. Codice da inserire in functions.php:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

add_filter( 'plugin_action_links', 'slt_lock_plugins', 10, 4 ); function slt_lock_plugins( $actions, $plugin_file, $plugin_data, $context ) { Remove edit link for all if ( array_key_exists( 'edit', $actions ) ) unset( $actions['edit'] ); Remove deactivate link for crucial plugins if ( array_key_exists( 'deactivate', $actions ) in_array( $plugin_file, array( 'slt custom fields/slt custom fields.php', 'slt file select/slt file select.php', 'slt simple events/slt simple events.php', 'slt widgets/slt widgets.php' ))) unset( $actions['deactivate'] ); return $actions; }

Disabilitare la possibilità per gli utenti di cambiare il tema WordPress In modo analogo alla disabilitazione dei plug-in sopra descritti anche per i temi molto spesso è necessario precludere la possibilità agli utenti di poter cambiare il tema attivo. Il codice seguente rimuoverà l'opzione di menu "Aspetto" dalla Dashboard. A tale scopo inseriremo il seguente snippet in functions.php:

1 2 3 4 5 6 7 8 9

add_action( 'admin_init', 'slt_lock_theme' ); function slt_lock_theme() { global $submenu, $userdata; get_currentuserinfo(); if ( $userdata ID 1 ) { unset( $submenu['themes.php'][5] ); unset( $submenu['themes.php'][15] ); } }


Disabilitazione voci nel menu del pannello di amministrazione di WordPress In base alle preferenze del cliente potrebbe essere necessario disabilitare / nascondere le opzioni del menu WordPress. Con questo snippet potremo nascondere qualsiasi menu di livello superiore (post, contenuti multimediali, link, strumenti...). Codice per il le functions.php:

1 2 3 4 5 6 7 8 9 10

function remove_menus () { global $menu; $restricted = array( ('Dashboard'), ('Posts'), ('Media'), ('Links'), ('Pages end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] NULL?$value[0] "" , $restricted)){unset($menu[key($menu) } } add_action('admin_menu', 'remove_menus');

Disabilitazione dei sottomenu del pannello di amministrazione WordPress Nel caso in cui l'utente necessita solo di alcuni sottomenu con il seguente snippet potremo disabilitate / nascoste selettivamente le sezioni che non interessano. Per ottenere ciò aggiungeremo il seguente codice in functions.php:

1 2 3 4 5 6 7 8

function remove_submenus() { global $submenu; unset($submenu['index.php'][10]); Removes 'Updates'. unset($submenu['themes.php'][5]); Removes 'Themes'. unset($submenu['options general.php'][15]); Removes 'Writing'. unset($submenu['options general.php'][25]); Removes 'Discussion'. } add_action('admin_menu', 'remove_submenus');

L'ID menu si trova in wp-admin/menu.php.

Personalizzare le voci del menu Admin di WordPress in base al nome utente Per poter limitare l'accesso di un determinato utente a determinate voci del menu, e comunque mantenere il menu con le voci che interessano, questo snippet può essere d'aiuto.


Sostituire "client-username" con il nome utente per il quale attivare le modi che e incollare questo codice in functions.php:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

function remove_menus() { global $menu; global $current_user; get_currentuserinfo(); if($current_user user_login 'clients username') { $restricted = array( ('Posts'), ('Media'), ('Links'), ('Pages'), ('Comments'), ('Appearance'), ('Plugins'), ('Users'), ('Tools'), ('Settings') ); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] NULL?$value[0] "" , $restricted)){unset($menu[key($m } end while }

end if

} add_action('admin_menu', 'remove_menus');

Rimuovere i meta-box di WordPress dalle schermate dell'editor di post e pagine La pubblicazione di post e pagine è molto probabilmente la chiave del business dei nostri utenti e probabilmente il motivo principale per cui è stato scelto WordPress come piattaforma per la creazione del sito web. Per evitare qualsiasi confusione all'interno delle schermate dell'editor di post / pagine, potrebbe essere utile rimuovere meta-box non utilizzate (campi personalizzati, commenti recenti, tag post ...). Incollalo nel tuo functions.phpe modi ca come richiesto:

1 2 3 4 5 6 7

function remove_extra_meta_boxes() { remove_meta_box( 'postcustom' , 'post' , 'normal' ); remove_meta_box( 'postcustom' , 'page' , 'normal' ); remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); remove_meta_box( 'commentsdiv' , 'page' , 'normal' );

custom fields for posts custom fields for pages post excerpts page excerpts recent comments for posts recent comments for pages


8 9 10 11 12 13 14 15 16 17 18

remove_meta_box( 'tagsdiv post_tag' , 'post' , 'side' ); post tags remove_meta_box( 'tagsdiv post_tag' , 'page' , 'side' ); page tags remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' ); post trackbacks remove_meta_box( 'trackbacksdiv' , 'page' , 'normal' ); page trackbacks remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' ); allow comments for posts remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); allow comments for pages remove_meta_box('slugdiv','post','normal'); post slug remove_meta_box('slugdiv','page','normal'); page slug remove_meta_box('pageparentdiv','page','side'); Page Parent } add_action( 'admin_menu' , 'remove_extra_meta_boxes' );

Rimuovi le colonne delle pagine di WordPress L'aggiunta di questo codice consente di rimuovere qualsiasi colonna dalla sezione "Pagine" che ritieni non necessaria per il tuo cliente. Aggiungere il seguente snippet in functions.php:

1 2 3 4 5

function remove_pages_columns($defaults) { unset($defaults['comments']); return $defaults; } add_filter('manage_pages_columns', 'remove_pages_columns');

Rimuovi le colonne dei post di WordPress Simile allo snippet sopra, questo codice rimuoverĂ le colonne dalla pagina dei post. Inserie il seguente codice in functions.php:

1 2 3 4 5

function remove_post_columns($defaults) { unset($defaults['comments']); return $defaults; } add_filter('manage_posts_columns', 'remove_post_columns');

Rimozione dei widget prede niti dalla dashboard di WordPress La maggior parte dei widget prede niti presenti nella Dashboard spesso non risultano necessari per gli utenti del sito e danno un'idea di eccessiva complessitĂ . Questo snippet rimuove tutti i widget pre-de niti della Dashboard. Da inserire in functions.php:

1 2

function example_remove_dashboard_widgets() {


3 4 5 6 7 8 9 10

global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

} add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );

Per l'elenco di tutti i widget si rimanda alla pagina dell'API dei widget della Dashboard sul Codex.

Creazione widget per la dashboard WordPress personalizzati Quando si creano temi per i clienti potrebbe essere utile e apprezzato creare un widget di benvenuto personalizzato nella Dashboard. Questo snippet creerà un semplice widget "Hello World" e può essere facilmente modi cato a seconda delle esigenze. Codice da inserire in functions.php:

1 2 3 4 5 6 7 8 9

function example_dashboard_widget_function() { echo "Hello World, I'm a great Dashboard Widget"; } function example_add_dashboard_widgets() { wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'exam } add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

Aggiungi, rimuovi e riordina i Widget della Dashboard per ruolo Per una Dashboard WordPress personalizzata in base ai ruoli utente, limitando la comparsa di determinati widget ai soli utenti con i ruoli di "editori" ed "autori" ed eliminandoli dalla dashbord per gli altri ruoli. Questo snippet eliminerà solo il widget "Collegamenti in entrata" per autori ed editori ed eliminerà tutti gli altri widget nel caso si appartenga ad altri ruoli. Da inserire in functions.php:

1 2 3 4 5 6 7

function tidy_dashboard() { global $wp_meta_boxes, $current_user; if(in_array('author', $current_user roles) in_array('editor', $current_user roles) { unset($wp_meta_boxes['dashboard']['normal ']['core']['dashboard_incoming_links']);


8 9 10 11 12 13 14 15 16

} unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } add_action('wp_dashboard_setup', 'tidy_dashboard');

Ecco un elenco di come deselezionare ciascuno dei widget della Dashboard prede niti:

1 2 3 4 5 6 7 8

unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);

Rimozione e spostamento del metabox autore ed opzioni schermo Questo codice rimuoverĂ la metabox Autore e le Opzioni Schermo, aggiungendo le le opzioni schermo nel metabox di pubblicazione. Da inserire in functions.php:

add_action( 'admin_menu', 'remove_author_metabox' ); add_action( 'post_submitbox_misc_actions', 'move_author_to_publish_metabox' ); function remove_author_metabox() { remove_meta_box( 'authordiv', 'post', 'normal' ); } function move_author_to_publish_metabox() { global $post_ID; $post = get_post( $post_ID ); echo '<div id="author" class="misc pub section" style="border top style:solid; border top post_author_meta_box( $post ); echo ' div>'; }

Aggiungere e rimuovere collegamenti da barra amministrazione WordPress La barra di amministrazione di WordPress consente di accedere rapidamente a tutte le aree principali del sito, come la sezione per la creazione di un nuovo post o pagina, la moderazione dei


commenti oppure la modi ca dei widget. I snippet di seguito consentiranno di aggiungere oppure di rimuovere tali link. Il seguente snippet aggiungerà collegamenti alla barra di amministrazione. Da aggiungere al le functions.php del tema in uso:

1 2 3 4 5 6 7 8 9 10 11 12

function my_admin_bar_link() { 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 da aggiungere'), 'href' admin_url( 'http: misitourl.com/wp admin.php' ) ) ); } add_action('admin_bar_menu', 'my_admin_bar_link');

Questo snippet invece rimuoverà i collegamenti dalla barra di amministrazione. Da aggiungere in functions.php:

1 2 3 4 5 6

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' );

Come mostrare messaggio importante da parte dell'amministratore WordPress Questo snippet ci consentirà di mostrare un messaggio personalizzato sulla dashboard di tutto gli utenti che hanno effettuato l'accesso. Particolarmente utile se è necessario informare un cliente / utente di eventuali problemi riscontrati sulla piattaforma, quali ad esempio rallentamenti inaspettati o interventi di manutenzione programmata. Snippet da aggiungere al le functions.php del tema in uso:

1 2 3 4 5 6 7 8

function showMessage($message, $errormsg = false) { if ($errormsg) { echo '<div id="message" class="error">'; } else { echo '<div id="message" class="updated fade">'; }


9 10 11

}

echo "<p><strong>$message strong> p> div>";

Di seguito aggiungeremo uno snippet con la funzione per le noti che dell'amministratore, contenente un messaggio personalizzato:

1 2 3 4 5 6 7 8 9

function showAdminMessages() { showMessage("Aggiornare il database il prima possibile

", true);

if (user_can('manage_options') { showMessage("Hello admins!"); }

} add_action('admin_notices', 'showAdminMessages');

Nascondere l'avviso di aggiornamento di WordPress Spesso capita che per alcuni iscritti con determinati ruoli è stata disabilitata la possibilità di poter effettuare aggiornamenti sulla piattaforma. Per quei utenti, attraverso il seguente snippet, sarà possibile rimuovere il messaggio di aggiornamento di WordPress. Da inserire nel le functions.php del tema in uso:

1 2 3 4

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

Modi ca URL di accesso del pannello di controllo WordPress L'URL prede nito per l'accesso ad un sito web basato su WordPress di corrisponde a https://www.tuosito.it/wp-login.php. Attraverso il le .htaccess sarà possibile modi care il percorso standard e renderlo più semlice da ricordare, ad esempio cambiandolo in https://www.tuosito.it/login. A tale scopo inseriremo nel le .htaccess il seguente codice:

1

RewriteRule ^login$ http: yoursite.com/wp login.php [NC,L]

Modi ca del testo del piè di pagina della dashboard Quando si crea un sito per un cliente può essere utile poter personalizzare il testo del piè di pagina della dashboard. Il seguente snippet ci consentirà di apportare tale modi ca.


Modi care "Inserisci il testo personalizzato" e aggiungerlo nel le functions.php del tema in uso:

1 2 3 4 5

function remove_footer_admin () { echo "Testo personalizzato"; } add_filter('admin_footer_text', 'remove_footer_admin');

Modi ca del logo del pannello di accesso WordPress Quando si creano temi per i clienti una delle loro aspettative potrebbe essere quella di avere il proprio logo nel pannello di accesso. Sostituire il logo standard di WorPress con un logo personalizzato è un'operazione molto semplice. Le dimensioni ottimali del nuovo logo dovranno essere di 326×82 pixel e tale logo andrà collocato nella cartella "immagini" del tema in uso. Sostituire il nome del le "nuovologo.png" con il nome del proprio logo e aggiungere il seguente codice nel le functions.php del tema in uso:

1 2 3 4

function custom_login_logo() { echo '<style type="text/css">h1 a { background: url('.get_bloginfo('template_director } add_action('login_head', 'custom_login_logo');

Sostituzione del logo standard della dashboard WordPress Il prossimo passo nella personalizzazione del backend di WordPress è la sostituzione del logo che compare nella Dashboards. In questo caso sarà più opportuno creare un'immagine trasparente (.gif o .png) di 30x31px. Una volta creata la salveremo nella cartella delle immagini del tema. Sostituire "custom-logo.gif" con il nome del le appena creato e inserire il seguente snippet nel le functions.php:

1 2 3 4 5 6 7 8 9

add_action('admin_head', 'my_custom_logo'); function my_custom_logo() { echo ' <style type="text/css"> #header logo { background image: url('.get_bloginfo('template_directory').'/images/custom style> '; }

Condividi l'articolo...


Autore articolo: Emilio Petrozzi Creazione siti web dinamici e di commercio elettronico, assistenza WordPress, ottimizzazione per motori di ricerca, campagne pubblicitarie web, sicurezza informatica. Esperienza ultra ventennale. Articoli pubblicati da Emilio Petrozzi | Sito Web

Tags: snippets,wordpress

Lascia un commento Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati * Commento

Nome *

Email *

Sito web

Do il mio consenso af nché un cookie salvi i miei dati (nome, email, sito web) per il prossimo commento.

PUBBLICA IL COMMENTO

Aricoli correlati


Installazione e con gurazione

Installazione di VestaCP e di

Installazione di WordPress 5.3

di WordPress attraverso WP-CLI

WordPress su server VPS

attraverso stack LAMP Linux Ubuntu

Co n t a t to S ky p e Chi Sono Emilio Petrozzi Assistenza WordPress Tel. Mobile 3205754844 Tel. Fisso 0776811856 Email info@mrtux.it

Social

Email di supporto Privacy Policy Cookies

© 2002-2019 MrTux.it Emilio Petrozzi  P. I.V.A. IT03080230604 - Professionista ai sensi della Legge 4/2013

Profile for Emilio Petrozzi

Modificare e personalizzare WordPress attraverso 20 Snippets  

Lista di 20 snippets PHP per WordPress in grado di personalizzare il back-end ed il front-end del CMS. Autore Emilio Petrozzi - Sito Web mrt...

Modificare e personalizzare WordPress attraverso 20 Snippets  

Lista di 20 snippets PHP per WordPress in grado di personalizzare il back-end ed il front-end del CMS. Autore Emilio Petrozzi - Sito Web mrt...