Il file delle funzioni di WordPress, noto come functions.php, è un potente strumento fornito con ogni tema di WordPress. Si comporta come un plugin, consentendo di aggiungere codice personalizzato al sito con facilità.
Utilizziamo il codice personalizzato sui nostri siti quando è possibile utilizzare un breve pezzo di codice. La versatilità e la flessibilità di WordPress ci permettono di combinare le funzionalità di diversi plugin in modo facile da gestire.
In questo articolo condivideremo alcuni di questi trucchi pratici e utili per utilizzare il file delle funzioni di WordPress, aiutandovi a ottenere di più dal vostro sito WordPress.
Che cos’è il file delle funzioni in WordPress?
Il file functions.php è un file del tema WordPress che viene fornito con tutti i temi WordPress gratuiti e premium.
Funziona come un plugin e consente agli sviluppatori di temi di definire le caratteristiche del tema. Gli utenti possono anche usarlo per aggiungere i loro snippet di codice personalizzati in WordPress.
Tuttavia, salvare il codice personalizzato in un file di funzioni non è una buona pratica.
Se si aggiorna il tema, il file functions.php viene sovrascritto e si perdono gli snippet di codice personalizzati. Non è possibile disattivare uno snippet senza eliminarlo.
Consigliamo invece a tutti di utilizzare WPCode, un plugin gratuito che consente di inserire snippet di codice nel sito WordPress senza modificare alcun tema, plugin o file core di WordPress.
Perché consigliamo WPCode?
- Salva facilmente gli snippet di codice personalizzati senza modificare i file principali.
- Inserisce automaticamente gli snippet di codice dove servono
- Ogni frammento di codice viene salvato separatamente e può essere spento individualmente.
- Un meccanismo di sicurezza integrato disattiva uno snippet di codice se causa un errore sul sito.
Come bonus, il plugin WPCode dispone di un’ampia libreria di snippet di codice preconfigurati (tra cui molti di quelli presenti in questo elenco). È possibile distribuire questi snippet di codice con pochi clic.
Detto questo, ecco un elenco di elementi che tratteremo in questo articolo. Potete passare a quello che vi interessa o semplicemente seguirlo:
- How to Add These Code Snippets to Your Website
- Remove WordPress Version Number
- Add a Custom Dashboard Logo
- Change the Footer in WordPress Admin Panel
- Add Custom Dashboard Widgets in WordPress
- Change the Default Gravatar in WordPress
- Dynamic Copyright Date in WordPress Footer
- Randomly Change the Background Color in WordPress
- Update WordPress URLs
- Add Additional Image Sizes in WordPress
- Add New Navigation Menus to Your Theme
- Add Author Profile Fields
- Adding Widget-Ready Areas or Sidebars in WordPress Themes
- Manipulate the RSS Feed Footer
- Add Featured Images to RSS Feeds
- Hide Login Errors in WordPress
- Disable Login by Email in WordPress
- Disable Search Feature in WordPress
- Delay Posts in RSS Feed
- Change Read More Text for Excerpts in WordPress
- Disable RSS Feeds in WordPress
- Change Excerpt Length in WordPress
- Add an Admin User in WordPress
- Disable Language Switcher on Login Page
- Show the Total Number of Registered Users in WordPress
- Exclude Specific Categories From RSS Feed
- Disable URL Links in WordPress Comments
- Add Odd and Even CSS Classes to WordPress Posts
- Add Additional File Types to Be Uploaded in WordPress
- Change Sender Name in WordPress Emails
- Add an Author Info Box in WordPress Posts
- Disable XML-RPC in WordPress
- Automatically Link Featured Images to Posts
- Disable Block Editor in WordPress
- Disable Block Widgets in WordPress
- Display the Last Updated Date in WordPress
- Use Lowercase Filenames for Uploads
- Disable WordPress Admin Bar on Frontend
- Change Howdy Admin Text in Admin Area
- Disable Code Editing in Block Editor
- Disable Plugin / Theme File Editor
- Disable New User Notification Emails
- Disable Automatic Update Email Notifications
- Add a Link to Easily Duplicate a Post
- Remove Welcome Panel From the WordPress Admin Dashboard
- Add a Featured Image Column for Posts in WordPress Admin
- Block WordPress Admin Area for Everyone Except Administrators
Come aggiungere questi snippet di codice al vostro sito web
Prima di iniziare, vediamo come aggiungere gli snippet di codice di questo articolo al vostro file functions di WordPress.
1. Aggiungere codice personalizzato al file delle funzioni usando WPCode (consigliato)
Per prima cosa, è necessario installare e attivare il plugin WPCode. Per maggiori dettagli, consultate la nostra guida passo passo su come installare un plugin di WordPress.
Dopo l’attivazione, andare alla pagina Code Snippets ” + Add Snippet. Vedrete la libreria di codice di WPCode con molti utili snippet di codice personalizzati già aggiunti.
Se il vostro frammento di codice fa la stessa cosa di quelli presenti nella libreria, potete provare quello già aggiunto.
In alternativa, fare clic sul link “snippet vuoto” per continuare ad aggiungere il proprio snippet di codice personalizzato.
Nella schermata successiva, indicare un titolo per il codice personalizzato. Può essere qualsiasi cosa che aiuti a identificare l’azione di questo snippet di codice.
Successivamente, è necessario scegliere il “Tipo di codice”. Se si sta aggiungendo un codice che funziona nel file functions.php, è necessario selezionare “Snippet PHP”.
Di seguito, è necessario copiare e incollare il codice personalizzato nella casella “Anteprima codice”.
Infine, è necessario impostare lo snippet come ‘Attivo’ e fare clic sul pulsante ‘Salva snippet’.
Lo snippet salvato verrà eseguito come se fosse stato aggiunto al file functions.php.
È possibile ripetere la procedura per aggiungere altri snippet quando necessario. È anche possibile disattivare un frammento senza eliminarlo.
2. Aggiungere codice personalizzato direttamente nel file delle funzioni
Il metodo WPCode è sempre meglio dell’aggiunta di codice al file delle funzioni del tema.
Tuttavia, alcuni utenti potrebbero scrivere codice per il tema WordPress personalizzato di un cliente o semplicemente preferire aggiungere codice al file functions.php.
In questo caso, ecco come aggiungere del codice al file functions.php del vostro tema WordPress.
Per prima cosa, collegatevi al vostro sito WordPress utilizzando un client FTP. Una volta connessi, navigare nella cartella /wp-content/themes/your-wordpress-theme/.
Qui si trova il file functions.php. È sufficiente fare clic con il pulsante destro del mouse e selezionare la modifica o scaricare il file sul computer per modificarlo.
È possibile modificarlo con qualsiasi editor di testo semplice, come Notepad o TextEdit.
Quindi, scorrere fino alla parte inferiore del file functions.php e incollarvi il frammento di codice. È possibile salvare le modifiche e caricare il file functions.php aggiornato nella cartella del tema.
Ora è possibile visitare il sito web di WordPress per vedere il codice personalizzato in azione.
Ora diamo un’occhiata a 46 diversi trucchi utili per il file functions di WordPress.
1. Rimuovere il numero di versione di WordPress
Dovreste sempre utilizzare l’ultima versione di WordPress. Tuttavia, potreste voler rimuovere il numero di versione di WordPress dal vostro sito.
È sufficiente aggiungere questo frammento di codice al file delle funzioni o come nuovo frammento di WPCode:
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
Per istruzioni dettagliate, consultate la nostra guida sul modo corretto di rimuovere il numero di versione di WordPress.
2. Aggiungere un logo personalizzato al cruscotto
Volete etichettare l’area di amministrazione di WordPress? Il primo passo è aggiungere un logo personalizzato alla Bacheca.
Per prima cosa, è necessario caricare il logo personalizzato nella cartella images del tema come custom-logo.png. Il logo personalizzato deve avere un rapporto 1:1 (un’immagine quadrata) di 16×16 pixel.
Successivamente, è possibile aggiungere questo codice al file delle funzioni del tema o come nuovo snippet di WPCode:
function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');
Per maggiori dettagli, consultate la nostra guida su come aggiungere un logo personalizzato alla dashboard di WordPress.
3. Modificare il footer nel pannello di amministrazione di WordPress
Il piè di pagina nell’area di amministrazione di WordPress mostra il messaggio “Grazie per aver creato con WordPress”. È possibile cambiarlo con qualsiasi cosa si desideri aggiungendo questo codice:
function remove_footer_admin () {
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
add_filter('admin_footer_text', 'remove_footer_admin');
Sentitevi liberi di modificare il testo e i link che volete aggiungere. Ecco come appare sul nostro sito di prova.
4. Aggiungere widget di dashboard personalizzati in WordPress
Probabilmente avete visto i widget che molti plugin e temi aggiungono alla dashboard di WordPress. Potete aggiungerne uno voi stessi incollando il seguente codice:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
Ecco come apparirebbe:
Per maggiori dettagli, consultate il nostro tutorial su come aggiungere widget personalizzati alla dashboard di WordPress.
5. Cambiare il Gravatar predefinito in WordPress
Avete visto l’avatar predefinito dell’uomo misterioso sui blog? Potete facilmente sostituirlo con il vostro avatar personalizzato.
È sufficiente caricare l’immagine che si desidera utilizzare come avatar predefinito e aggiungere questo codice al proprio file di funzioni o al plugin WPCode:
function wpb_custom_default_gravatar( $avatar_defaults ) {
$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
$avatar_defaults[$myavatar] = 'Default Gravatar';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );
Ora è possibile accedere alla pagina Impostazioni ” Discussione e selezionare l’avatar predefinito.
Per istruzioni dettagliate, consultate la nostra guida su come cambiare il gravatar predefinito in WordPress.
6. Data di copyright dinamica nel piè di pagina di WordPress
È possibile aggiungere una data di copyright modificando il modello del piè di pagina del tema. Tuttavia, non mostrerà la data di inizio del sito e non cambierà automaticamente l’anno successivo.
Questo codice può aggiungere una data di copyright dinamica nel piè di pagina di WordPress:
function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
Dopo aver aggiunto questa funzione, è necessario aprire il file footer.php e aggiungere il seguente codice nel punto in cui si desidera visualizzare la data dinamica del copyright:
<?php echo wpb_copyright(); ?>
Questa funzione cerca la data del primo messaggio e la data dell’ultimo messaggio. Restituisce quindi gli anni nel punto in cui si chiama la funzione.
Suggerimento: se si utilizza il plugin WPCode, è possibile combinare i due snippet di codice. In seguito, nella sezione “Inserimento” delle impostazioni dello snippet, scegliere la posizione “Piè di pagina del sito”. In questo modo la data del copyright verrà automaticamente visualizzata nel piè di pagina senza modificare il file footer.php del tema.
Per maggiori dettagli, consultate la nostra guida su come aggiungere date di copyright dinamiche in WordPress.
7. Cambiare casualmente il colore di sfondo in WordPress
Volete cambiare casualmente il colore di sfondo del vostro blog WordPress a ogni visita e ricarica della pagina? Ecco come farlo facilmente.
Per prima cosa, aggiungete questo codice al file functions del vostro tema o al plugin WPCode:
function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
echo $color;
}
Successivamente, è necessario modificare il file header.php del tema. Trovare il tag <body>
e sostituirlo con questa riga:
<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">
Ora è possibile salvare le modifiche e visitare il sito web per vedere il codice in azione.
Per maggiori dettagli e metodi alternativi, consultate il nostro tutorial sulla modifica casuale del colore di sfondo in WordPress.
8. Aggiornare gli URL di WordPress
Se la pagina di accesso a WordPress si aggiorna continuamente o non è possibile accedere all’area di amministrazione, è necessario aggiornare gli URL di WordPress.
Un modo per farlo è utilizzare il file wp-config.php. Tuttavia, se lo fate, non potrete impostare l’indirizzo corretto nella pagina delle impostazioni. I campi URL di WordPress e URL del sito saranno bloccati e non modificabili.
Invece, basta aggiungere questo codice al file delle funzioni per risolvere il problema:
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );
Non dimenticate di sostituire example.com con il vostro nome di dominio.
Una volta effettuato l’accesso, è possibile accedere alla pagina Impostazioni nell’area di amministrazione di WordPress e impostare gli URL.
Successivamente, è necessario rimuovere il codice aggiunto al file delle funzioni o a WPCode. Altrimenti, continuerà ad aggiornare questi URL ogni volta che si accede al sito.
9. Aggiungere ulteriori dimensioni alle immagini in WordPress
WordPress genera automaticamente diverse dimensioni di immagine quando si carica un’immagine. È inoltre possibile creare ulteriori dimensioni di immagine da utilizzare nel tema.
È sufficiente aggiungere questo codice al file functions del tema o come snippet di WPCode:
add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode
Questo codice crea tre nuove immagini di dimensioni diverse. Sentitevi liberi di modificare il codice per soddisfare le vostre esigenze.
È quindi possibile visualizzare le dimensioni dell’immagine in qualsiasi punto del tema utilizzando questo codice:
<?php the_post_thumbnail( 'homepage-thumb' ); ?>
Per istruzioni dettagliate, consultate la nostra guida sulla creazione di immagini di dimensioni aggiuntive in WordPress.
10. Aggiungere nuovi menu di navigazione al tema
WordPress consente agli sviluppatori di temi di definire i menu di navigazione e di visualizzarli.
È possibile aggiungere questo codice al file functions del tema o come nuovo snippet di WPCode per definire una nuova posizione del menu nel tema:
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
Ora è possibile andare su Aspetto ” Menu nella dashboard di WordPress e vedere “Il mio menu personalizzato” come opzione di localizzazione del tema.
Nota: questo codice funziona anche con i temi a blocchi con la funzione di modifica completa del sito. L’aggiunta di questo codice abilita la schermata Menu in Aspetto.
Ora è necessario aggiungere questo codice al tema in cui si desidera visualizzare il menu di navigazione:
<?php
wp_nav_menu( array(
'theme_location' => 'my-custom-menu',
'container_class' => 'custom-menu-class' ) );
?>
Per istruzioni dettagliate, consultate la nostra guida su come aggiungere menu di navigazione personalizzati nei temi WordPress.
11. Aggiungere i campi del profilo dell’autore
Volete aggiungere campi extra ai vostri profili autore in WordPress? Potete farlo facilmente aggiungendo questo codice al vostro file functions o come nuovo snippet WPCode:
function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';
return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);
Questo codice aggiunge i campi di Twitter e Facebook ai profili degli utenti di WordPress.
Ora è possibile visualizzare questi campi nel modello di autore in questo modo:
<?php echo get_the_author_meta('twitter') ?>
Si consiglia di consultare anche la nostra guida sull’aggiunta di campi aggiuntivi per il profilo utente nella registrazione di WordPress.
12. Aggiunta di aree o barre laterali pronte per i widget nei temi WordPress
Questo è uno degli snippet di codice più utilizzati e molti sviluppatori sanno già come aggiungere aree o barre laterali pronte per i widget ai temi WordPress. Ma merita di essere inserito in questo elenco per coloro che non lo sanno.
È possibile incollare il seguente codice nel file functions.php o come nuovo snippet di WPCode:
// Register Sidebars
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget Area', 'text_domain' ),
'description' => __( 'A custom widget area', 'text_domain' ),
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );
Nota: questo codice funziona anche con i temi a blocchi con la funzione di modifica completa del sito. L’aggiunta di questo codice abilita la schermata dei widget in Aspetto.
Ora è possibile visitare la pagina Aspetto ” Widget e vedere la nuova area dei widget personalizzati.
Per visualizzare questa barra laterale o area pronta per i widget sul vostro sito web, dovrete aggiungere il seguente codice nel modello in cui volete visualizzarla:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>
Per maggiori dettagli, consultate la nostra guida su come aggiungere aree e barre laterali dinamiche pronte per i widget in WordPress.
13. Manipolare il piè di pagina del feed RSS
Avete visto i blog che aggiungono le loro pubblicità nei loro feed RSS sotto ogni post? Potete realizzarlo facilmente con una semplice funzione. Basta incollare il seguente codice:
function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');
Per ulteriori informazioni, consultare la nostra guida su come aggiungere contenuti e manipolare completamente i feed RSS.
14. Aggiungere immagini in primo piano ai feed RSS
Le miniature dei post o le immagini in primo piano vengono solitamente visualizzate solo all’interno del design del sito. È possibile estendere facilmente questa funzionalità al feed RSS con il seguente codice:
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
Per maggiori dettagli, consultate la nostra guida su come aggiungere le miniature dei post al vostro feed RSS di WordPress.
15. Nascondere gli errori di accesso in WordPress
Gli hacker possono usare gli errori di login per indovinare se hanno inserito un nome utente o una password sbagliati. Nascondendo gli errori di accesso in WordPress, è possibile rendere più sicura l’area di accesso e il sito web WordPress.
È sufficiente aggiungere il seguente codice al file functions del tema o come nuovo snippet di WPCode:
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
Ora gli utenti vedranno un messaggio generico quando inseriscono un nome utente o una password errati.
Per ulteriori informazioni, consultate il nostro tutorial sulla disabilitazione dei suggerimenti per il login nei messaggi di errore di WordPress.
16. Disabilitare l’accesso via e-mail in WordPress
WordPress consente agli utenti di accedere con il proprio nome utente o indirizzo e-mail. Potete facilmente disabilitare il login via e-mail in WordPress aggiungendo questo codice al vostro file functions o come nuovo snippet di WPCode:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
Per ulteriori informazioni, consultate la nostra guida su come disabilitare la funzione di login via e-mail in WordPress.
17. Disabilitare la caratteristica di ricerca in WordPress
Se volete disabilitare la funzione di ricerca del vostro sito WordPress, aggiungete semplicemente questo codice al vostro file functions o in un nuovo snippet WPCode:
function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}
Questo codice disabilita semplicemente la query di ricerca modificandola e restituendo un errore 404 invece dei risultati della ricerca.
Per ulteriori informazioni, consultate il nostro tutorial sulla disattivazione della funzione di ricerca di WordPress.
Suggerimento: invece di rinunciare alla ricerca su WordPress, vi consigliamo di provare SearchWP. È il miglior plugin di ricerca per WordPress sul mercato che vi permette di aggiungere una funzione di ricerca potente e personalizzabile al vostro sito web.
18. Ritardare i messaggi nel feed RSS
A volte può capitare di pubblicare un articolo con un errore grammaticale o di ortografia.
L’errore viene pubblicato e distribuito agli abbonati al feed RSS. Se sul vostro blog WordPress sono presenti abbonamenti e-mail, anche questi riceveranno una notifica.
È sufficiente aggiungere questo codice al file functions del vostro tema o come nuovo snippet di WPCode per ritardare i post nel vostro feed RSS:
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '10'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
In questo codice, abbiamo usato 10 minuti come tempo di attesa o ritardo. È possibile modificare questo valore in qualsiasi numero di minuti si desideri.
Per un metodo di plugin e maggiori informazioni, consultate la nostra guida dettagliata su come ritardare la visualizzazione dei post nel feed RSS di WordPress.
19. Cambiare il testo di approfondimento per gli estratti in WordPress
Volete cambiare il testo che appare dopo l’estratto nei vostri post? Aggiungete semplicemente questo codice al file functions del vostro tema o come nuovo snippet di WPCode:
function modify_read_more_link() {
return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
20. Disattivare i feed RSS in WordPress
Non tutti i siti web hanno bisogno di feed RSS. Se volete disabilitare i feed RSS sul vostro sito WordPress, aggiungete questo codice al file functions del vostro tema o come nuovo snippet di WPCode:
function new_excerpt_more($more) {
global $post;
return '<a class="moretag"
href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
Per maggiori informazioni sul metodo del plugin, consultate la nostra guida su come disabilitare i feed RSS in WordPress.
21. Cambiare la lunghezza dell’estratto in WordPress
WordPress limita la lunghezza degli estratti a 55 parole. È possibile aggiungere questo codice al file delle funzioni o a un nuovo snippet di WPCode, se si desidera modificarlo:
function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
Basta cambiare 100 con il numero di parole che si desidera mostrare negli estratti.
Per metodi alternativi, potete consultare la nostra guida su come personalizzare gli estratti di WordPress (non è necessario alcun codice).
22. Aggiungere un utente amministratore in WordPress
Se avete dimenticato la password e l’e-mail di WordPress, potete aggiungere un utente amministratore aggiungendo questo codice al file functions del vostro tema utilizzando un client FTP:
function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');
Non dimenticate di compilare i campi nome utente, password ed e-mail.
Importante: Una volta effettuato l’accesso al sito WordPress, non dimenticate di eliminare il codice dal file delle funzioni.
Per saperne di più su questo argomento, date un’occhiata al nostro tutorial su come aggiungere un utente amministratore in WordPress usando l’FTP.
23. Disabilitare il selettore di lingua nella pagina di accesso
Se gestite un sito web multilingue, WordPress visualizza un selettore di lingua nella pagina di accesso. Potete facilmente disabilitarlo aggiungendo il seguente codice al vostro file functions.php o come nuovo snippet di WPCode:
add_filter( 'login_display_language_dropdown', '__return_false' );
24. Mostrare il numero totale di utenti registrati in WordPress
Volete mostrare il numero totale di utenti registrati sul vostro sito WordPress? Aggiungete semplicemente questo codice al file functions del vostro tema o come nuovo snippet WPCode:
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');
Questo codice crea uno shortcode che consente di visualizzare il numero totale di utenti registrati sul sito.
Ora è sufficiente aggiungere lo shortcode [user_count]
alla pagina o alla pubblicazione in cui si vuole mostrare il numero totale di utenti.
Per ulteriori informazioni e per un metodo di plugin, consultate il nostro tutorial su come visualizzare il numero totale di utenti registrati in WordPress.
25. Escludere categorie specifiche dal feed RSS
Volete escludere categorie specifiche dal vostro feed RSS di WordPress? Potete aggiungere questo codice al file functions del vostro tema o come nuovo snippet WPCode:
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', '-5, -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
26. Disabilitare i collegamenti URL nei commenti di WordPress
Per impostazione predefinita, WordPress converte un URL in un link cliccabile nei commenti.
È possibile interrompere questa operazione aggiungendo il seguente codice al file delle funzioni o come nuovo snippet di WPCode:
remove_filter( 'comment_text', 'make_clickable', 9 );
Per maggiori dettagli, consultate il nostro articolo su come disabilitare l’autolink nei commenti di WordPress.
27. Aggiungere classi CSS pari e dispari ai post di WordPress
Forse avete visto che i temi di WordPress utilizzano una classe pari o dispari per i commenti di WordPress. Questo aiuta gli utenti a visualizzare la fine di un commento e l’inizio del successivo.
Potete utilizzare la stessa tecnica per i vostri post su WordPress. Ha un aspetto estetico gradevole e aiuta gli utenti a scansionare rapidamente le pagine con molti contenuti.
È sufficiente aggiungere questo codice al file delle funzioni del vostro tema:
function oddeven_post_class ( $classes ) {
global $current_class;
$classes[] = $current_class;
$current_class = ($current_class == 'odd') ? 'even' : 'odd';
return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';
Questo codice aggiunge semplicemente una classe pari o dispari ai post di WordPress. A questo punto è possibile aggiungere CSS personalizzati per stilizzarli in modo diverso.
Ecco alcuni esempi di codice per aiutarvi a iniziare:
.even {
background:#f0f8ff;
}
.odd {
background:#f4f4fb;
}
Il risultato finale sarà simile a questo:
Avete bisogno di istruzioni più dettagliate? Date un’occhiata al nostro tutorial su come aggiungere classi pari/dispari ai vostri post nei temi WordPress.
28. Aggiungere altri tipi di file da caricare in WordPress
Per impostazione predefinita, WordPress consente di caricare un numero limitato di tipi di file tra quelli più comunemente utilizzati. Tuttavia, è possibile estenderlo per consentire altri tipi di file.
È sufficiente aggiungere questo codice al file delle funzioni del tema:
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
$mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
Questo codice consente di caricare file SVG e PSD su WordPress.
È necessario trovare i tipi di mime per i tipi di file che si desidera consentire e quindi utilizzarli nel codice.
Per saperne di più su questo argomento, consultate il nostro tutorial su come aggiungere altri tipi di file da caricare in WordPress.
29. Cambiare il nome del mittente nelle e-mail di WordPress
WordPress utilizza un indirizzo e-mail inesistente (wordpress@yourdomain.com) per inviare le e-mail in uscita per impostazione predefinita.
Questo indirizzo e-mail potrebbe essere segnalato come spam dai fornitori di servizi e-mail.
L’utilizzo del plugin WP Mail SMTP è il modo corretto per risolvere il problema.
Risolve i problemi di recapito delle e-mail e consente di scegliere un indirizzo e-mail effettivo per inviare le e-mail di WordPress.
Per saperne di più, consultate la nostra guida su come risolvere il problema dell’invio di e-mail da parte di WordPress.
D’altra parte, se si vuole cambiare rapidamente questo indirizzo in un indirizzo e-mail reale, si può aggiungere il seguente codice nel file delle funzioni o come nuovo snippet di WPCode:
// Function to change email address
function wpb_sender_email( $original_email_address ) {
return 'tim.smith@example.com';
}
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
return 'Tim Smith';
}
// Hooking up our functions to WordPress filters
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );
Non dimenticate di sostituire l’indirizzo e-mail e il nome con i vostri dati.
Il problema di questo metodo è che WordPress utilizza ancora la funzione mail() per inviare le e-mail, che molto probabilmente finiscono nello spam.
Per alternative migliori, consultate il nostro tutorial su come cambiare il nome del mittente nelle e-mail di WordPress in uscita.
30. Aggiungere un riquadro informativo sull’autore nei post di WordPress
Se gestite un sito multi-autore e volete mostrare le biografie degli autori alla fine dei vostri post, potete provare questo metodo.
Iniziate aggiungendo questo codice al vostro file di funzioni o come nuovo snippet di WPCode:
function wpb_author_info_box( $content ) {
global $post;
// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {
// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );
// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );
// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );
// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);
// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
// Get User Gravatar
$user_gravatar = get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );
if ( ! empty( $display_name ) )
$author_details = '<p class="author_name">About ' . $display_name . '</p>';
if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description.
$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';
$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';
// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {
// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';
} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}
// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}
// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );
// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');
Successivamente, è necessario aggiungere alcuni CSS personalizzati per migliorare l’aspetto.
È possibile utilizzare questo esempio di CSS come punto di partenza:
.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}
.author_name{
font-size:16px;
font-weight: bold;
}
.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}
Ecco come apparirà il vostro riquadro autore:
Per il metodo del plugin e per istruzioni più dettagliate, consultate il nostro articolo su come aggiungere un riquadro informativo sull’autore nei post di WordPress.
31. Disabilitare XML-RPC in WordPress
XML-RPC è un metodo che consente alle applicazioni di terze parti di comunicare con il vostro sito WordPress in remoto. Questo potrebbe causare problemi di sicurezza ed essere sfruttato dagli hacker.
Per disattivare XML-RPC in WordPress, aggiungete il seguente codice al vostro file di funzioni o come nuovo snippet di WPCode:
add_filter('xmlrpc_enabled', '__return_false');
Per ulteriori informazioni, potete leggere il nostro articolo su come disabilitare XML-RPC in WordPress.
32. Collegare automaticamente le immagini in primo piano ai post
Se il vostro tema WordPress non collega automaticamente le immagini in primo piano agli articoli completi, potete provare questo metodo.
È sufficiente aggiungere questo codice al file functions del tema o come nuovo snippet di WPCode:
function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {
If (! is_singular()) {
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;
} else {
return $html;
}
}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );
Si consiglia di leggere il nostro articolo su come collegare automaticamente le immagini in primo piano ai post in WordPress.
33. Disattivare l’editor di blocchi in WordPress
WordPress utilizza un editor moderno e intuitivo per scrivere contenuti e modificare il sito web. Questo editor utilizza dei blocchi per gli elementi di contenuto e di layout comunemente usati, per questo si chiama Block Editor.
Tuttavia, in alcuni casi potrebbe essere necessario utilizzare il vecchio Classic Editor.
Il modo più semplice per disabilitare l’editor di blocchi è usare il plugin Classic Editor. Tuttavia, se non si vuole usare un plugin separato, è sufficiente aggiungere il seguente codice al file delle funzioni o a un nuovo snippet di WPCode:
add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);
Per maggiori dettagli, vedere il nostro tutorial su come disabilitare l’editor a blocchi e utilizzare l’editor classico.
34. Disabilitare i blocchi di widget in WordPress
Con WordPress 5.8 si è passati dai widget classici ai widget a blocchi. I nuovi widget a blocchi sono più facili da usare e offrono un maggiore controllo sul design rispetto ai widget classici.
Tuttavia, alcuni utenti potrebbero voler utilizzare i widget classici. In questo caso, è possibile utilizzare il seguente codice nel file functions del tema o come nuovo snippet di WPCode:
add_filter( 'use_widgets_block_editor', '__return_false' );
Per maggiori dettagli, vedere il nostro articolo su come disabilitare i blocchi di widget (ripristinare i widget classici).
35. Visualizzare la data dell’ultimo aggiornamento in WordPress
Quando i visitatori visualizzano un post o una pagina sul vostro blog WordPress, il vostro tema WordPress mostrerà la data di pubblicazione del post. Questo va bene per la maggior parte dei blog e dei siti web statici.
Tuttavia, WordPress è utilizzato anche da siti web in cui i vecchi articoli vengono aggiornati regolarmente. In queste pubblicazioni, la visualizzazione della data e dell’ora dell’ultima modifica del post è essenziale.
È possibile mostrare la data dell’ultimo aggiornamento utilizzando il seguente codice nel file functions del tema o come nuovo snippet di WPCode:
$u_time = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {
$updated_date = get_the_modified_time( 'F jS, Y' );
$updated_time = get_the_modified_time( 'h:i a' );
$updated = '<p class="last-updated">';
$updated .= sprintf(
// Translators: Placeholders get replaced with the date and time when the post was modified.
esc_html__( 'Last updated on %1$s at %2$s' ),
$updated_date,
$updated_time
);
$updated .= '</p>';
echo wp_kses_post( $updated );
}
Per metodi alternativi e maggiori dettagli, consultate la nostra guida su come visualizzare la data dell’ultimo aggiornamento in WordPress.
36. Utilizzare nomi di file minuscoli per i caricamenti
Se si gestisce un sito web con più autori, gli autori possono caricare immagini con nomi di file in maiuscolo e minuscolo.
L’aggiunta del seguente codice assicura che tutti i nomi dei file siano in minuscolo:
add_filter( 'sanitize_file_name', 'mb_strtolower' );
Nota: il codice non cambierà i nomi dei file per i caricamenti esistenti. Per metodi alternativi, consultate il nostro tutorial su come rinominare immagini e file multimediali in WordPress.
37. Disabilitare la barra di amministrazione di WordPress sul frontend
Per impostazione predefinita, WordPress visualizza la barra di amministrazione in alto quando un utente loggato visualizza il vostro sito web.
È possibile disabilitare la barra di amministrazione per tutti gli utenti, tranne che per gli amministratori del sito. È sufficiente aggiungere il seguente codice al file delle funzioni o come nuovo snippet di WPCode:
/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );
Per maggiori dettagli, consultate la nostra guida su come disabilitare la barra di amministrazione di WordPress per tutti gli utenti tranne gli amministratori.
38. Modifica del testo Howdy Admin nell’area amministrativa
WordPress visualizza un saluto “Howdy Admin” nella dashboard di WordPress. ‘Admin’ è sostituito dal nome dell’utente collegato.
È possibile modificare il saluto predefinito aggiungendo il seguente codice nel file delle funzioni o come nuovo snippet di WPCode:
function wpcode_snippet_replace_howdy( $wp_admin_bar ) {
// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
$new_howdy = 'Welcome,';
$my_account = $wp_admin_bar->get_node( 'my-account' );
$wp_admin_bar->add_node(
array(
'id' => 'my-account',
'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
)
);
}
add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );
Per maggiori dettagli, consultate il nostro articolo sulla modifica del messaggio “Howdy Admin” in WordPress.
39. Disabilitare la modifica del codice nell’Editor blocchi
L’editor dei blocchi consente di passare all’editor del codice. È utile se si deve aggiungere manualmente del codice HTML.
Tuttavia, si consiglia di limitare questa funzione agli amministratori del sito.
Per ottenere questo risultato, è possibile aggiungere il seguente codice al file delle funzioni o come snippet di WPCode:
add_filter( 'block_editor_settings_all', function ( $settings ) {
$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );
return $settings;
} );
40. Disabilita l’editor dei file dei plugin e dei temi
WordPress è dotato di un editor integrato in cui è possibile modificare i file dei plugin. Potete vederlo andando alla pagina Plugin ” Plugin File Editor.
Allo stesso modo, WordPress include anche un editor di file per i temi classici in Aspetto ” Theme File Editor.
Nota: se si utilizza un tema a blocchi, l’editor dei file del tema non è visibile.
Si sconsiglia di utilizzare questi editor per apportare modifiche al tema o al plugin. Un piccolo errore nel codice può rendere il vostro sito inaccessibile a tutti gli utenti.
Per disabilitare l’editor del plugin/tema, aggiungere il seguente codice al file delle funzioni o come snippet di WPCode:
// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
define( 'DISALLOW_FILE_EDIT', true );
}
Per maggiori dettagli, consultate il nostro tutorial su come disabilitare l’editor di plugin/temi in WordPress.
41. Disattivare le e-mail di notifica per i nuovi utenti
Per impostazione predefinita, WordPress invia una notifica via e-mail quando un nuovo utente si unisce al vostro sito WordPress.
Se gestite un sito web WordPress di tipo membership o richiedete agli utenti di iscriversi, riceverete una notifica ogni volta che un utente si iscrive al vostro sito web.
Per disattivare queste notifiche, si può aggiungere quanto segue al proprio file di funzioni o a un nuovo snippet di WPCode:
function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
if ( empty( $notify ) || 'admin' === $notify ) {
return;
} elseif ( 'both' === $notify ) {
// Send new users the email but not the admin.
$notify = 'user';
}
wp_send_new_user_notifications( $user_id, $notify );
}
add_action(
'init',
function () {
// Disable default email notifications.
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );
// Replace with custom function that only sends to user.
add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
}
);
Per maggiori dettagli, consultate il nostro tutorial su come disabilitare le notifiche e-mail dei nuovi utenti in WordPress.
42. Disattivare le notifiche e-mail di aggiornamento automatico
Occasionalmente, WordPress può installare automaticamente aggiornamenti di sicurezza e di manutenzione o aggiornare un plugin con una vulnerabilità critica.
Invia una notifica automatica via e-mail dopo ogni aggiornamento. Se gestite più siti web WordPress, potreste ricevere diverse e-mail di questo tipo.
È possibile aggiungere questo codice al proprio file di funzioni o come nuovo snippet di WPCode per disattivare le notifiche via e-mail:
/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );
// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );
// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );
Per saperne di più, consultate il nostro articolo su come disabilitare le e-mail di aggiornamento automatico in WordPress.
43. Aggiungere un link per duplicare facilmente un post
Avete mai desiderato un modo più semplice per copiare rapidamente tutto il contenuto di un post per modificarlo senza toccare il post pubblicato?
Il seguente frammento di codice aggiunge un’opzione per duplicare facilmente un post con tutti i suoi contenuti:
// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
/**
* @param array $actions The actions added as links to the admin.
* @param WP_Post $post The post object.
*
* @return array
*/
function wpcode_snippet_duplicate_post_link( $actions, $post ) {
// Don't add action if the current user can't create posts of this post type.
$post_type_object = get_post_type_object( $post->post_type );
if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
return $actions;
}
$url = wp_nonce_url(
add_query_arg(
array(
'action' => 'wpcode_snippet_duplicate_post',
'post_id' => $post->ID,
),
'admin.php'
),
'wpcode_duplicate_post_' . $post->ID,
'wpcode_duplicate_nonce'
);
$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';
return $actions;
}
}
/**
* Handle the custom action when clicking the button we added above.
*/
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {
if ( empty( $_GET['post_id'] ) ) {
wp_die( 'No post id set for the duplicate action.' );
}
$post_id = absint( $_GET['post_id'] );
// Check the nonce specific to the post we are duplicating.
if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
// Display a message if the nonce is invalid, may it expired.
wp_die( 'The link you followed has expired, please try again.' );
}
// Load the post we want to duplicate.
$post = get_post( $post_id );
// Create a new post data array from the post loaded.
if ( $post ) {
$current_user = wp_get_current_user();
$new_post = array(
'comment_status' => $post->comment_status,
'menu_order' => $post->menu_order,
'ping_status' => $post->ping_status,
'post_author' => $current_user->ID,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title . ' (copy)',// Add "(copy)" to the title.
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
);
// Create the new post
$duplicate_id = wp_insert_post( $new_post );
// Copy the taxonomy terms.
$taxonomies = get_object_taxonomies( get_post_type( $post ) );
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
}
}
// Copy all the custom fields.
$post_meta = get_post_meta( $post_id );
if ( $post_meta ) {
foreach ( $post_meta as $meta_key => $meta_values ) {
if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
continue;
}
foreach ( $meta_values as $meta_value ) {
add_post_meta( $duplicate_id, $meta_key, $meta_value );
}
}
}
// Redirect to edit the new post.
wp_safe_redirect(
add_query_arg(
array(
'action' => 'edit',
'post' => $duplicate_id
),
admin_url( 'post.php' )
)
);
exit;
} else {
wp_die( 'Error loading post for duplication, please try again.' );
}
} );
Dopo aver aggiunto il codice, accedere alla schermata Messaggi ” Tutti i messaggi e posizionare il mouse sul titolo di un post.
Noterete un nuovo link “Duplica” sotto le opzioni.
Facendo clic sul link si crea una copia del post con tutti i suoi contenuti. È quindi possibile lavorare su quella bozza.
Una volta terminato, è possibile copiare e incollare le modifiche apportate al post originale pubblicato e cancellare la copia.
Per un metodo di plugin, consultate il nostro articolo sulla duplicazione di un post o di una pagina di WordPress.
44. Rimuovere il pannello di benvenuto dalla dashboard dell’amministratore di WordPress
Il Pannello di benvenuto appare nella dashboard di amministrazione di WordPress. Può essere facilmente eliminato o nascosto facendo clic sul pulsante “Opzioni schermo”.
Tuttavia, se si sta lavorando per rendere più pulita l’esperienza della dashboard per gli utenti, si può decidere di nasconderla in modo permanente.
Aggiungete il seguente codice per disabilitarlo per tutti gli utenti del vostro sito:
add_action(
'admin_init',
function () {
remove_action( 'welcome_panel', 'wp_welcome_panel' );
}
);
45. Aggiungere una colonna di immagini in primo piano per i post nell’amministrazione di WordPress
Per impostazione predefinita, WordPress mostra le immagini in primo piano solo quando si visualizza il sito o quando si modifica un post o una pagina.
Il codice seguente aggiunge una nuova colonna alla schermata Messaggi ” Tutti i messaggi per le immagini in primo piano:
add_filter( 'manage_posts_columns', function ( $columns ) {
// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
$move_after = 'title';
$move_after_key = array_search( $move_after, array_keys( $columns ), true );
$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
$last_columns = array_slice( $columns, $move_after_key + 1 );
return array_merge(
$first_columns,
array(
'featured_image' => __( 'Featured Image' ),
),
$last_columns
);
} );
add_action( 'manage_posts_custom_column', function ( $column ) {
if ( 'featured_image' === $column ) {
the_post_thumbnail( array( 300, 80 ) );
}
} );
Ecco come apparirebbe dopo l’aggiunta del codice.
46. Bloccare l’area amministrativa di WordPress per tutti tranne che per gli amministratori
Alcuni siti web WordPress possono richiedere agli utenti di registrare un account. Ad esempio, un sito associativo WordPress o un negozio di e-commerce.
La maggior parte di questi plugin impedisce a questi utenti di accedere all’area di amministrazione. Tuttavia, se non si utilizza un plugin di questo tipo, è possibile aggiungere il seguente codice per bloccare l’accesso all’area di amministrazione a tutti gli utenti, eccetto gli amministratori:
add_action( 'admin_init', function() {
if ( ! current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
} );
Gli utenti con altri ruoli possono ancora accedere ai loro account, ma dopo l’accesso saranno reindirizzati alla homepage.
Speriamo che questo articolo vi abbia aiutato a imparare alcuni nuovi utili trucchi per il file functions.php di WordPress. Potreste anche leggere la nostra guida sulla visualizzazione del codice in WordPress per condividere facilmente i vostri snippet e la nostra scelta dei migliori editor del codice per Mac e Windows.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
DANISH
such a great and useful tricks..
Marco
thank you so much!
Webtechideas
Such a nice list of useful tricks. It will help both plugin and theme developers.
ahmed
In #14, isn’t that a instead of ?
Mick O
Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.
Editorial Staff
It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.
Admin
Luke Gibson
The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?
Editorial Staff
Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.
Admin
Zeeshan Arshad
Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.
Best Wishes!
DesignSkew
In “Add Author Profile Fields”, the function you mentioned to echo is not working.
Editorial Staff
The curauth would only work if it is on author.php file.
Admin
Mark
Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.
mommyblogger
Thanks for the great Wordpress tips! I was hoping you could help me with an additional one?
I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the “the_excerpt”? I would also like the excerpt to be a “…read more” link and limit the number of characters in it. Here is the code it would need to be added to;
$tags_list = get_the_tag_list( ”, __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class=”%1$s”>Tagged</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>
Thanks!
SteveEBoy
Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.
LambrosPower
one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.
Xiaozhuli
This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!
Mohammad Yeasin
You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.
AA
Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress “site” and do not have a use for the dates. I have already removed them from the posts & pages.
Much thanks in advance!
Editorial Staff
Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.
Admin
Michele Welch
Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post.
Phil
Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!
wparena
it is really good that you compiled all impotent things at one place
Mark Welburn
Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.
Connor Crosby
Just a note, be careful when you copy and paste the “end of excerpt” function. It showed a question mark instead of “…” since it was one character. I had to rewrite “…” for it show up.
Martin
Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.
Huw Rowlands
Wow! Some really handy stuff there!
Thanks for sharing.
mark.
I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.
Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/
helpin
Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?
Thanks !
Editorial Staff
You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….
Admin
Connor Crosby
Very nice list. I didn’t know you could do so much with the functions.php file!
Andy
You guys rock!!! Thanks for the awesome post.
Best,
Andy
Jennifer R
thanks you for these useful tricks
Marcelo Torres
Wow very good! Thanks for sharing
tarpontech
Best Damn Wordpress Article I’ve ever stumbled across.
ddeja
Thanks for those tips. Some are new for me. So I will be probably try to use them:)
Thanks again.
Chuck Reynolds
Since WP3 final release you need to update #11 to
add_theme_support( ‘menus’ );
Editorial Staff
Fixed thanks
Admin
William
Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers
Kate Mag
Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.
Adam
Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!
Susan
Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?
Susan
I finally got it!! Thanks for the awesome post btw.
Dave Z
There are some good suggestions here. Implementation could be improved for a few of them.
For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!
#18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:
str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );
This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.
Nice tips. I like the Post Thumbnails demonstration.
Editorial Staff
Thank you for your tips Really appreciate it.
Admin
Abdullah
Nice post.. very useful information.
Thnkx wpbeginner for making us more professional in our field.
Regards
Mohummad Abdullah
Zhu
Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!
Waheed Akhtar
Great list. Bookmarked for any reference in future
Sahus Pilwal
Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!
Cheers, Sahus
patrick andrew adams
i can’t wait to try a few of these out, pretty new to wp still.
graphicbeacon
slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.
Todd Santoro
here is one for changing the login logo:
function the_custom_login_logo() {
echo ‘
h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
‘;
}
add_action(‘login_head’, ‘the_custom_login_logo’);
Todd Santoro
Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.
Cheers!
Kenton Bell
I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.
Raoni
Hi,
just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the “custom-logo.gif” now is a .png image.
Great collection!!!!
Andris
That was a very useful post. I just implemented “4. Add a custom Dashboard Logo” to my Website.
Todd Santoro
Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!
Jake Goldman
Great tips. Got a kick out of seeing a few of mine in there. lots of new tips coming soon in my next article!
Editorial Staff
Will keep my eyes open
Admin
Tony
Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!
DaveK
Brilliance, I will be putting quite a few of these to good use.
Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.
Keep up the good work.