Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
1 function remove_menus () {
2 global $menu;
3 $restricted = array( ('Dashboard'), ('Posts'), ('Media'), ('Links'), ('Pages
4 end ($menu);
5 while (prev($menu)){
6 $value = explode(' ',$menu[key($menu)][0]);
7 if(in_array($value[0] NULL?$value[0] "" , $restricted)){unset($menu[key($menu)
8 }
9 }
10 add_action('admin_menu', 'remove_menus');
1 function remove_submenus() {
2 global $submenu;
3 unset($submenu['index.php'][10]); Removes 'Updates'.
4 unset($submenu['themes.php'][5]); Removes 'Themes'.
5 unset($submenu['options general.php'][15]); Removes 'Writing'.
6 unset($submenu['options general.php'][25]); Removes 'Discussion'.
7 }
8 add_action('admin_menu', 'remove_submenus');
1 function remove_menus()
2 {
3 global $menu;
4 global $current_user;
5 get_currentuserinfo();
6
7 if($current_user user_login 'clients username')
8 {
9 $restricted = array( ('Posts'),
10 ('Media'),
11 ('Links'),
12 ('Pages'),
13 ('Comments'),
14 ('Appearance'),
15 ('Plugins'),
16 ('Users'),
17 ('Tools'),
18 ('Settings')
19 );
20 end ($menu);
21 while (prev($menu)){
22 $value = explode(' ',$menu[key($menu)][0]);
23 if(in_array($value[0] NULL?$value[0] "" , $restricted)){unset($menu[key($m
24 } end while
25
26 } end if
27 }
28 add_action('admin_menu', 'remove_menus');
1 function remove_extra_meta_boxes() {
2 remove_meta_box( 'postcustom' , 'post' , 'normal' ); custom fields for posts
3 remove_meta_box( 'postcustom' , 'page' , 'normal' ); custom fields for pages
4 remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); post excerpts
5 remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); page excerpts
6 remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); recent comments for posts
7 remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); recent comments for pages
8 remove_meta_box( 'tagsdiv post_tag' , 'post' , 'side' ); post tags
9 remove_meta_box( 'tagsdiv post_tag' , 'page' , 'side' ); page tags
10 remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' ); post trackbacks
11 remove_meta_box( 'trackbacksdiv' , 'page' , 'normal' ); page trackbacks
12 remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' ); allow comments for posts
13 remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); allow comments for pages
14 remove_meta_box('slugdiv','post','normal'); post slug
15 remove_meta_box('slugdiv','page','normal'); page slug
16 remove_meta_box('pageparentdiv','page','side'); Page Parent
17 }
18 add_action( 'admin_menu' , 'remove_extra_meta_boxes' );
1 function remove_pages_columns($defaults) {
2 unset($defaults['comments']);
3 return $defaults;
4 }
5 add_filter('manage_pages_columns', 'remove_pages_columns');
1 function remove_post_columns($defaults) {
2 unset($defaults['comments']);
3 return $defaults;
4 }
5 add_filter('manage_posts_columns', 'remove_post_columns');
Da inserire in functions.php:
1 function example_remove_dashboard_widgets() {
2
3 global $wp_meta_boxes;
4
5 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
6 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
7 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
8 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
9 }
10 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.
1 function example_dashboard_widget_function() {
2 echo "Hello World, I'm a great Dashboard Widget";
3 }
4
5 function example_add_dashboard_widgets() {
6 wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'exam
7 }
8
9 add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );
Da inserire in functions.php:
1 function tidy_dashboard()
2 {
3 global $wp_meta_boxes, $current_user;
4
5 if(in_array('author', $current_user roles) in_array('editor', $current_user roles)
6 {
7 unset($wp_meta_boxes['dashboard']['normal ']['core']['dashboard_incoming_links']);
8 }
9
10 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
11 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
12 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
13
14 }
15
16 add_action('wp_dashboard_setup', 'tidy_dashboard');
Ecco un elenco di come deselezionare ciascuno dei widget della Dashboard prede niti:
1 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
2 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
3 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
4 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
5 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
6 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
7 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
8 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
Da inserire in functions.php:
1 function my_admin_bar_link() {
2 global $wp_admin_bar;
3 if ( !is_super_admin() !is_admin_bar_showing() )
4 return;
5 $wp_admin_bar add_menu( array(
6 'id' 'diww',
7 'parent' 'my blogs',
8 'title' ( 'Titolo del link da aggiungere'),
9 'href' admin_url( 'http: misitourl.com/wp admin.php' )
10 ) );
11 }
12 add_action('admin_bar_menu', 'my_admin_bar_link');
Da aggiungere in functions.php:
1 function remove_admin_bar_links() {
2 global $wp_admin_bar;
3 $wp_admin_bar remove_menu('my blogs');
4 $wp_admin_bar remove_menu('my account with avatar');
5 }
6 add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );
Di seguito aggiungeremo uno snippet con la funzione per le noti che dell'amministratore,
contenente un messaggio personalizzato:
1 function showAdminMessages()
2 {
3 showMessage("Aggiornare il database il prima possibile ", true);
4
5 if (user_can('manage_options') {
6 showMessage("Hello admins!");
7 }
8 }
9 add_action('admin_notices', 'showAdminMessages');
1 add_action('admin_menu','wphidenag');
2 function wphidenag() {
3 remove_action( 'admin_notices', 'update_nag', 3 );
4 }
1 function remove_footer_admin () {
2 echo "Testo personalizzato";
3 }
4
5 add_filter('admin_footer_text', 'remove_footer_admin');
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 function custom_login_logo() {
2 echo '<style type="text/css">h1 a { background: url('.get_bloginfo('template_director
3 }
4 add_action('login_head', 'custom_login_logo');
Sostituire "custom-logo.gif" con il nome del le appena creato e inserire il seguente snippet nel le
functions.php:
1 add_action('admin_head', 'my_custom_logo');
2
3 function my_custom_logo() {
4 echo '
5 <style type="text/css">
6 #header logo { background image: url('.get_bloginfo('template_directory').'/images/custom
7 style>
8 ';
9 }
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.
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