SlideShare a Scribd company logo
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:
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:
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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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] );
}
}
1
2
3
4
5
6
7
8
9
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:
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:
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.
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');
1
2
3
4
5
6
7
8
9
10
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');
1
2
3
4
5
6
7
8
Sostituire "client-username" con il nome utente per il quale attivare le modi che e incollare questo
codice in functions.php:
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:
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');
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_extra_meta_boxes() {
remove_meta_box( 'postcustom' , 'post' , 'normal' ); custom fields for posts
remove_meta_box( 'postcustom' , 'page' , 'normal' ); custom fields for pages
remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); post excerpts
remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); page excerpts
remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); recent comments for posts
remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); recent comments for pages
1
2
3
4
5
6
7
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:
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:
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:
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' );
8
9
10
11
12
13
14
15
16
17
18
function remove_pages_columns($defaults) {
unset($defaults['comments']);
return $defaults;
}
add_filter('manage_pages_columns', 'remove_pages_columns');
1
2
3
4
5
function remove_post_columns($defaults) {
unset($defaults['comments']);
return $defaults;
}
add_filter('manage_posts_columns', 'remove_post_columns');
1
2
3
4
5
function example_remove_dashboard_widgets() {1
2
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:
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:
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' );
3
4
5
6
7
8
9
10
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' );
1
2
3
4
5
6
7
8
9
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']);
1
2
3
4
5
6
7
Ecco un elenco di come deselezionare ciascuno dei widget della Dashboard prede niti:
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:
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
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>';
}
}
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');
8
9
10
11
12
13
14
15
16
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']);
1
2
3
4
5
6
7
8
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:
Questo snippet invece rimuoverà i collegamenti dalla barra di amministrazione.
Da aggiungere in functions.php:
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:
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');
1
2
3
4
5
6
7
8
9
10
11
12
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' );
1
2
3
4
5
6
function showMessage($message, $errormsg = false)
{
if ($errormsg) {
echo '<div id="message" class="error">';
}
else {
echo '<div id="message" class="updated fade">';
}
1
2
3
4
5
6
7
8
Di seguito aggiungeremo uno snippet con la funzione per le noti che dell'amministratore,
contenente un messaggio personalizzato:
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:
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:
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.
echo "<p><strong>$message strong> p> div>";
}
9
10
11
function showAdminMessages()
{
showMessage("Aggiornare il database il prima possibile ", true);
if (user_can('manage_options') {
showMessage("Hello admins!");
}
}
add_action('admin_notices', 'showAdminMessages');
1
2
3
4
5
6
7
8
9
add_action('admin_menu','wphidenag');
function wphidenag() {
remove_action( 'admin_notices', 'update_nag', 3 );
}
1
2
3
4
RewriteRule ^login$ http: yoursite.com/wp login.php [NC,L]1
Modi care "Inserisci il testo personalizzato" e aggiungerlo nel le functions.php del tema in uso:
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:
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:
Condividi l'articolo...
function remove_footer_admin () {
echo "Testo personalizzato";
}
add_filter('admin_footer_text', 'remove_footer_admin');
1
2
3
4
5
function custom_login_logo() {
echo '<style type="text/css">h1 a { background: url('.get_bloginfo('template_director
}
add_action('login_head', 'custom_login_logo');
1
2
3
4
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>
';
}
1
2
3
4
5
6
7
8
9
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.
P U B B L I C A I L C O M M E N T O
Aricoli correlati
Installazione e con gurazione
di WordPress attraverso WP-CLI
Installazione di VestaCP e di
WordPress su server VPS
Installazione di WordPress 5.3
attraverso stack LAMP Linux
Ubuntu
Contatto Skype
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

More Related Content

Similar to Modificare e personalizzare WordPress attraverso 20 Snippets

DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
Alessandro Giorgetti
 
I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPress
Marco De Sangro
 
Moduli su Zend Framework 2: come sfruttarli
Moduli su Zend Framework 2: come sfruttarliModuli su Zend Framework 2: come sfruttarli
Moduli su Zend Framework 2: come sfruttarli
Stefano Valle
 
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
SEO Training
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.
Marco De Sangro
 
Wordpress la guida
Wordpress la guidaWordpress la guida
Wordpress la guidalajonard
 
Wordpress Multisite | Mafaldida
Wordpress Multisite | MafaldidaWordpress Multisite | Mafaldida
Wordpress Multisite | Mafaldida
Giulia Costa
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
GrUSP
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Alessandro Nadalin
 
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANODrupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
DrupalDay
 
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Marco Chiesi
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzato
Twinbit
 
Sviluppare estensioni per google chrome
Sviluppare estensioni per google chromeSviluppare estensioni per google chrome
Sviluppare estensioni per google chrome
Marco Vito Moscaritolo
 
Luca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minutiLuca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minuti
Meet Magento Italy
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
Seo con drupal
Seo con drupalSeo con drupal
Seo con drupal
Saverio Menin
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
Roberto Torresani
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione Docebo
FormaLms
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
Andrea Dottor
 
Introduzione a Struts
Introduzione a StrutsIntroduzione a Struts
Introduzione a Struts
Andrea Colleoni
 

Similar to Modificare e personalizzare WordPress attraverso 20 Snippets (20)

DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
 
I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPress
 
Moduli su Zend Framework 2: come sfruttarli
Moduli su Zend Framework 2: come sfruttarliModuli su Zend Framework 2: come sfruttarli
Moduli su Zend Framework 2: come sfruttarli
 
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
Fare SEO su Wordpress - Francesco Gavello - SEO Training 2011
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.
 
Wordpress la guida
Wordpress la guidaWordpress la guida
Wordpress la guida
 
Wordpress Multisite | Mafaldida
Wordpress Multisite | MafaldidaWordpress Multisite | Mafaldida
Wordpress Multisite | Mafaldida
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANODrupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
 
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzato
 
Sviluppare estensioni per google chrome
Sviluppare estensioni per google chromeSviluppare estensioni per google chrome
Sviluppare estensioni per google chrome
 
Luca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minutiLuca Peressini - 20 moduli in 20 minuti
Luca Peressini - 20 moduli in 20 minuti
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 
Seo con drupal
Seo con drupalSeo con drupal
Seo con drupal
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
 
Manuale Configurazione Docebo
Manuale Configurazione DoceboManuale Configurazione Docebo
Manuale Configurazione Docebo
 
Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
Introduzione a Struts
Introduzione a StrutsIntroduzione a Struts
Introduzione a Struts
 

Modificare e personalizzare WordPress attraverso 20 Snippets

  • 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.
  • 2. 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: 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: 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; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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] ); } } 1 2 3 4 5 6 7 8 9
  • 3. 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: 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: 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. 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'); 1 2 3 4 5 6 7 8 9 10 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'); 1 2 3 4 5 6 7 8
  • 4. Sostituire "client-username" con il nome utente per il quale attivare le modi che e incollare questo codice in functions.php: 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: 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'); 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_extra_meta_boxes() { remove_meta_box( 'postcustom' , 'post' , 'normal' ); custom fields for posts remove_meta_box( 'postcustom' , 'page' , 'normal' ); custom fields for pages remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); post excerpts remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); page excerpts remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); recent comments for posts remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); recent comments for pages 1 2 3 4 5 6 7
  • 5. 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: 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: 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: 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' ); 8 9 10 11 12 13 14 15 16 17 18 function remove_pages_columns($defaults) { unset($defaults['comments']); return $defaults; } add_filter('manage_pages_columns', 'remove_pages_columns'); 1 2 3 4 5 function remove_post_columns($defaults) { unset($defaults['comments']); return $defaults; } add_filter('manage_posts_columns', 'remove_post_columns'); 1 2 3 4 5 function example_remove_dashboard_widgets() {1 2
  • 6. 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: 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: 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' ); 3 4 5 6 7 8 9 10 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' ); 1 2 3 4 5 6 7 8 9 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']); 1 2 3 4 5 6 7
  • 7. Ecco un elenco di come deselezionare ciascuno dei widget della Dashboard prede niti: 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: 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 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>'; } } 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'); 8 9 10 11 12 13 14 15 16 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']); 1 2 3 4 5 6 7 8
  • 8. 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: Questo snippet invece rimuoverà i collegamenti dalla barra di amministrazione. Da aggiungere in functions.php: 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: 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'); 1 2 3 4 5 6 7 8 9 10 11 12 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' ); 1 2 3 4 5 6 function showMessage($message, $errormsg = false) { if ($errormsg) { echo '<div id="message" class="error">'; } else { echo '<div id="message" class="updated fade">'; } 1 2 3 4 5 6 7 8
  • 9. Di seguito aggiungeremo uno snippet con la funzione per le noti che dell'amministratore, contenente un messaggio personalizzato: 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: 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: 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. echo "<p><strong>$message strong> p> div>"; } 9 10 11 function showAdminMessages() { showMessage("Aggiornare il database il prima possibile ", true); if (user_can('manage_options') { showMessage("Hello admins!"); } } add_action('admin_notices', 'showAdminMessages'); 1 2 3 4 5 6 7 8 9 add_action('admin_menu','wphidenag'); function wphidenag() { remove_action( 'admin_notices', 'update_nag', 3 ); } 1 2 3 4 RewriteRule ^login$ http: yoursite.com/wp login.php [NC,L]1
  • 10. Modi care "Inserisci il testo personalizzato" e aggiungerlo nel le functions.php del tema in uso: 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: 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: Condividi l'articolo... function remove_footer_admin () { echo "Testo personalizzato"; } add_filter('admin_footer_text', 'remove_footer_admin'); 1 2 3 4 5 function custom_login_logo() { echo '<style type="text/css">h1 a { background: url('.get_bloginfo('template_director } add_action('login_head', 'custom_login_logo'); 1 2 3 4 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> '; } 1 2 3 4 5 6 7 8 9
  • 11. 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. P U B B L I C A I L C O M M E N T O Aricoli correlati
  • 12. Installazione e con gurazione di WordPress attraverso WP-CLI Installazione di VestaCP e di WordPress su server VPS Installazione di WordPress 5.3 attraverso stack LAMP Linux Ubuntu Contatto Skype 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