46 Trucchi Functions Php Wordpress  Sblocca Il Tuo Sito

46 Trucchi functions.php WordPress: Sblocca il Tuo Sito!

1Shares

Apportare piccole modifiche al tuo sito WordPress può sembrare come sbloccare superpoteri nascosti. Con poche righe di codice nel file functions, puoi personalizzare il funzionamento del tuo sito, senza bisogno di plugin extra.

Scoprire questi trucchi functions.php è fondamentale.

Abbiamo passato anni a sperimentare con il file functions.php, ed è uno degli strumenti più utili nel toolkit di un utente WordPress. Puoi aggiungere funzionalità personalizzate, rimuovere cose che non ti servono e perfezionare il comportamento del tuo sito con un po’ di codice.

Ma prima di iniziare, c’è una regola importante: fai sempre il backup del tuo sito. Modificare il file functions è come regolare il motore di un’auto; un piccolo errore può rompere le cose. Se vuoi un approccio più sicuro, ti consigliamo invece di utilizzare un plugin per snippet di codice personalizzati.

In questa guida, condivideremo 46 trucchi functions.php utili che puoi usare per personalizzare WordPress. Iniziamo!

Cos’è il file functions.php in WordPress?

Il file functions.php è come il cervello del tuo tema WordPress. Viene fornito con ogni tema WordPress gratuito e premium e consente agli sviluppatori di definire funzionalità personalizzate.

Pensalo come un mini-plugin integrato nel tuo tema. Puoi aggiungere snippet di codice personalizzati per modificare il funzionamento del tuo sito, dall’aggiunta di widget extra alla modifica delle pagine di accesso. È uno strumento potente, ma c’è un tranello.

Modificare direttamente il file functions non è la migliore idea. Se aggiorni il tuo tema, perderai tutto il tuo codice personalizzato. E se commetti un errore, potrebbe rompere il tuo sito, lasciandoti a cercare di risolverlo.

Ecco perché consigliamo sempre di utilizzare WPCode, un plugin gratuito che rende l’aggiunta di snippet di codice facile e senza rischi. Applicare trucchi functions.php diventa più sicuro.

Perché preferiamo WPCode?

  • Puoi salvare snippet personalizzati senza toccare i file del tema o del core.
  • Posiziona automaticamente il tuo codice dove ne hai bisogno.
  • Gli snippet vengono salvati separatamente, quindi puoi attivarli o disattivarli in qualsiasi momento.
  • Ha un fail-safe integrato che disabilita qualsiasi snippet che causa errori.

Come bonus aggiuntivo, il plugin WPCode include un’enorme libreria di snippet preconfigurati. Puoi abilitarli con un solo clic, senza bisogno di codifica!

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
libreria WPCode

Come aggiungere questi Snippet di codice al tuo sito web

Prima di iniziare, vediamo come aggiungere gli snippet di codice in questo articolo al tuo file functions di WordPress.

1. Aggiungere codice personalizzato al file functions.php usando WPCode (Consigliato)

Innanzitutto, devi installare e attivare il plugin WPCode. Installare un nuovo plugin è un’operazione comune in WordPress, ma se è la tua prima volta o hai bisogno di un ripasso, la nostra guida passo passo su come installare un plugin WordPress ti sarà di grande aiuto. Seguila e sarai operativo in pochissimo tempo!

All’attivazione, vai alla pagina Code Snippets » + Add Snippet. Vedrai la libreria di codice di WPCode con molti utili snippet di codice personalizzato già aggiunti.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Aggiungi Snippet

Se il tuo snippet di codice fa la stessa cosa degli snippet nella libreria, allora puoi provare quello già aggiunto lì.

In alternativa, fai clic sul link “blank snippet” per continuare ad aggiungere il tuo snippet di codice personalizzato.

Nella schermata successiva, fornisci un titolo per il tuo snippet di codice personalizzato. Questo potrebbe essere qualsiasi cosa che ti aiuti a identificare cosa fa questo snippet di codice.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Aggiungere il tuo codice personalizzato

Successivamente, devi scegliere il “Code Type“. Se stai aggiungendo un codice che funziona nel file functions.php, devi selezionare “PHP Snippet“.

Sotto, devi copiare e incollare il tuo codice personalizzato nella casella “Code Preview“.

Infine, devi impostare il tuo snippet come “Active” e fare clic sul pulsante “Save Snippet“.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Attiva e salva

Il tuo snippet salvato ora verrà eseguito come se lo avessi aggiunto al file functions.php.

Puoi ripetere il processo per aggiungere altri snippet quando necessario. Puoi anche disattivare uno snippet senza eliminarlo.

Questo è il modo migliore per applicare i trucchi functions.php in sicurezza.

2. Aggiungere codice personalizzato direttamente al file functions.php

Il metodo WPCode è sempre migliore dell’aggiunta di codice al file functions 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 tal caso, ecco come puoi aggiungere codice al file functions.php del tuo tema WordPress.

Innanzitutto, connettiti al tuo sito web WordPress utilizzando un client FTP. Una volta connesso, vai alla cartella /wp-content/themes/your-wordpress-theme/.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Modifica il file functions.php

Lì troverai il file functions.php. Fai semplicemente clic con il pulsante destro del mouse e seleziona per modificare o scaricare il file sul tuo computer per la modifica.

Puoi modificarlo utilizzando qualsiasi editor di testo semplice come Notepad o TextEdit.

Quindi, scorri verso il basso fino alla fine del file functions.php e incolla lì il tuo snippet di codice. Puoi salvare le modifiche e caricare il file functions.php aggiornato nella cartella del tema.

Ora puoi visitare il tuo sito web WordPress per vedere il tuo codice personalizzato in azione.

46 Trucchi utili per il file functions di WordPress

Ora, diamo un’occhiata a 46 diversi trucchi functions.php utili.

1. Rimuovere il numero di versione di WordPress

Dovresti sempre usare l’ultima versione di WordPress. Tuttavia, potresti voler rimuovere il numero di versione di WordPress dal tuo sito.

Aggiungi semplicemente questo snippet di codice:

function wpdl_remove_version() {
   return '';
}
add_filter('the_generator', 'wpdl_remove_version');

2. Aggiungere un logo personalizzato alla dashboard

Vuoi personalizzare (white-label) la tua area admin di WordPress? Il primo passo è aggiungere un logo personalizzato alla dashboard.

Innanzitutto, dovrai caricare il tuo logo personalizzato nella cartella images del tuo tema come custom-logo.png. Il tuo logo personalizzato dovrebbe essere in rapporto 1:1 (un’immagine quadrata) in 16×16 pixel.

Dopodiché, puoi aggiungere questo codice:

function wpdl_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', 'wpdl_custom_logo');

Il footer nell’area admin di WordPress mostra il messaggio “Grazie per aver creato con WordPress“. Puoi cambiarlo in qualsiasi cosa 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.wpdevlab.com" target="_blank">WPDevLab</a></p>';
}
add_filter('admin_footer_text', 'remove_footer_admin');

Sentiti libero di cambiare il testo e i link che vuoi aggiungere.

4. Aggiungere widget personalizzati alla dashboard in WordPress

Probabilmente hai visto i widget che molti plugin e temi aggiungono alla dashboard di WordPress. Puoi aggiungerne uno tu stesso 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.wpdevlab.com" target="_blank">WPDevLab</a></p>';
}

5. Cambiare il Gravatar predefinito in WordPress

Hai visto l’avatar predefinito dell’uomo misterioso sui blog? Puoi facilmente sostituirlo con il tuo avatar personalizzato.

Carica semplicemente l’immagine che desideri utilizzare come avatar predefinito e aggiungi questo codice:

function wpdl_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', 'wpdl_custom_default_gravatar' );

Ora puoi andare alla pagina Impostazioni » Discussione e selezionare il tuo avatar predefinito.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Gravatar predefinito personalizzato

Puoi semplicemente aggiungere una data di copyright modificando il template del footer nel tuo tema. Tuttavia, non mostrerà quando il tuo sito è iniziato e non cambierà automaticamente l’anno successivo.

Questi trucchi functions.php permettono di aggiungere una data di copyright dinamica nel footer di WordPress:

function wpdl_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, dovrai aprire il tuo file footer.php e aggiungere il seguente codice dove desideri visualizzare la data di copyright dinamica:

<?php echo wpdl_copyright(); ?>

Questa funzione cerca la data del tuo primo post e la data del tuo ultimo post. Quindi restituisce gli anni ovunque tu chiami la funzione.

Suggerimento: Se stai usando il plugin WPCode, puoi combinare i due snippet di codice. Dopodiché, scegli la posizione ‘Site Wide Footer‘ nella sezione ‘Insertion‘ delle impostazioni dello snippet. Questo visualizzerà automaticamente la data di copyright nel footer senza modificare il file footer.php del tuo tema.

7. Cambiare casualmente il colore di sfondo in WordPress

Vuoi cambiare casualmente il colore di sfondo sul tuo blog WordPress per ogni visita e ricaricamento della pagina? Ecco come farlo facilmente.

Prima, aggiungi questo codice:

function wpdl_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, dovrai modificare il file header.php nel tuo tema. Trova il tag <body> e sostituiscilo con questa riga:

<body <?php body_class(); ?> style="background-color:<?php wpdl_bg();?>">

Ora puoi salvare le modifiche e visitare il tuo sito web per vedere questo codice in azione.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Colori di sfondo casuali

8. Aggiornare gli URL di WordPress

Se la tua pagina di login di WordPress continua a ricaricarsi o non puoi accedere all’area admin, devi aggiornare gli URL di WordPress.

Un modo per farlo è usare il file wp-config.php. Tuttavia, se lo fai, non puoi impostare l’indirizzo corretto nella pagina delle impostazioni. I campi URL WordPress e URL Sito saranno bloccati e non modificabili.

Invece, aggiungi semplicemente questo codice al tuo file functions per risolvere questo problema:

update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

Una volta effettuato l’accesso, puoi andare alla pagina Impostazioni nell’area admin di WordPress e impostare gli URL.

Dopodiché, dovresti rimuovere il codice che hai aggiunto.

9. Aggiungere dimensioni immagine aggiuntive in WordPress

WordPress genera automaticamente diverse dimensioni di immagine quando carichi un’immagine. Puoi anche creare dimensioni di immagine aggiuntive da utilizzare nel tuo tema.

Questi trucchi functions.php ti permettono di farlo:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Modalità Ritaglio Duro
add_image_size( 'homepage-thumb', 220, 180 ); // Modalità Ritaglio Morbido
add_image_size( 'singlepost-thumb', 590, 9999 ); // Modalità Altezza Illimitata

Puoi quindi visualizzare una dimensione dell’immagine ovunque nel tuo tema usando questo codice:

<?php the_post_thumbnail( 'homepage-thumb' ); ?> 

10. Aggiungere nuovi menu di navigazione al tuo tema

WordPress consente agli sviluppatori di temi di definire menu di navigazione e quindi visualizzarli.

Puoi aggiungere questo codice per definire una nuova posizione del menu nel tuo tema:

function wpdl_custom_new_menu() {
   register_nav_menu('my-custom-menu',__( 'Mio Menu Personalizzato' ));
}
add_action( 'init', 'wpdl_custom_new_menu' );

Ora puoi andare su Aspetto » Menu nella dashboard di WordPress e vedere “Il mio menu personalizzato” come opzione per la posizione del tema.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Posizione del menu personalizzata

Ora devi aggiungere questo codice nel tuo tema dove vuoi visualizzare il menu di navigazione:

<?php
wp_nav_menu( array( 
'theme_location' => 'my-custom-menu', 
'container_class' => 'custom-menu-class' ) ); 
?>

11. Aggiungere campi profilo autore

Vuoi aggiungere campi extra ai profili autore in WordPress?

Puoi farlo facilmente aggiungendo questo codice:

function wpdl_new_contactmethods( $contactmethods ) {
   // Aggiungi Twitter
   $contactmethods['twitter'] = 'Twitter';
   // Aggiungi Facebook
   $contactmethods['facebook'] = 'Facebook';
   return $contactmethods;
}
add_filter('user_contactmethods','wpdl_new_contactmethods',10,1);

Puoi ora visualizzare questi campi nel tuo template autore così:

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Nuovi campi del profilo

Ora puoi visualizzare questi campi nel tuo modello autore in questo modo:

<?php echo get_the_author_meta('twitter') ?>
<?php echo get_the_author_meta('facebook') ?>

12. Aggiungere aree widget o sidebar nei temi WordPress

Questo è uno degli snippet di codice più usati. Incolla il seguente codice:

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

Ora puoi visitare la pagina Aspetto » Widget e visualizzare la tua nuova area widget personalizzata.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Area widget personalizzata

Per visualizzare questa sidebar o area widget sul tuo sito, dovrai aggiungere il seguente codice nel template dove vuoi visualizzarla:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!– Qui vanno le informazioni predefinite della sidebar –>
<?php endif; ?>

13. Manipolare il footer del feed RSS

Hai visto blog che aggiungono pubblicità nei loro feed RSS sotto ogni post? Puoi farlo facilmente con una semplice funzione.

Incolla semplicemente il seguente codice:

function wpdl_postrss($content) {
   if(is_feed()){
      $content = 'Questo post è stato scritto da WPDevLab '.$content.'Visita WPDevLav'; // Personalizza il testo
   }
   return $content;
}
add_filter('the_excerpt_rss', 'wpdl_postrss');
add_filter('the_content', 'wpdl_postrss');

14. Aggiungere immagini in evidenza ai feed RSS

L’immagine in evidenza o miniatura del post di solito viene visualizzata solo nel design del tuo sito.

Puoi facilmente estendere quella funzionalità al tuo 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');

15. Nascondere gli errori di login in WordPress

Gli hacker possono usare gli errori di login per indovinare se hanno inserito nome utente o password errati. Nascondendo gli errori di login in WordPress, puoi rendere la tua area di login e il tuo sito WordPress più sicuri.

Aggiungi semplicemente il seguente codice:

function no_wordpress_errors(){
   return 'Qualcosa è andato storto!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

D’ora in poi gli utenti visualizzeranno un messaggio generico quando inseriscono un nome utente o una password errati.

16. Disabilitare il login tramite email in WordPress

WordPress consente agli utenti di accedere con il loro nome utente o indirizzo email. Puoi facilmente disabilitare l’accesso tramite email aggiungendo questo codice:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

17. Disabilitare la funzione di ricerca in WordPress

Se vuoi disabilitare la funzione di ricerca del tuo sito WordPress, aggiungi semplicemente questo codice:

function wpdl_filter_query( $query, $error = true ) {
   if ( is_search() ) {
      $query->is_search = false;
      $query->query_vars['s'] = false; // Corretto da 's'
      $query->query['s'] = false; // Corretto da 's'
      if ( $error == true )
      $query->is_404 = true;
   }
}
add_action( 'parse_query', 'wpdl_filter_query' ); // Cambiato hook
add_action( 'pre_get_posts', 'wpdl_filter_query' ); // Aggiunto hook per maggiore compatibilità

Suggerimento Pro: Invece di rinunciare alla ricerca WordPress, ti consigliamo di provare SearchWP. È il miglior plugin di ricerca WordPress sul mercato.

18. Ritardare i post nel feed RSS

A volte, potresti pubblicare un articolo con un errore grammaticale o di battitura. L’errore va online e viene distribuito agli iscritti al tuo feed RSS.

Aggiungi semplicemente questo codice per ritardare i post nel tuo 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 $wait o delay time. Sentiti libero di cambiarlo in qualsiasi numero di minuti tu voglia.

19. Cambiare il testo “Leggi Tutto” per gli excerpt in WordPress

Vuoi cambiare il testo che appare dopo l’estratto nei tuoi post? Aggiungi semplicemente questo codice:

function modify_read_more_link() {
   return '<a class="more-link" href="' . get_permalink() . '">Leggi Tutto »</a>'; // Cambia il testo qui
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

function new_excerpt_more($more) {
   global $post;
   return '<a class="moretag" href="'. get_permalink($post->ID) . '"> Leggi Tutto »</a>'; // Cambia il testo qui
}
add_filter('excerpt_more', 'new_excerpt_more');

20. Disabilitare i feed RSS in WordPress

Non tutti i siti web necessitano di feed RSS. Se vuoi disabilitare i feed RSS sul tuo sito WordPress, aggiungi questo codice:

function disable_feeds() {
   wp_die( __('Nessun feed disponibile, visita la nostra <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
add_action('do_feed', 'disable_feeds', 1);
add_action('do_feed_rdf', 'disable_feeds', 1);
add_action('do_feed_rss', 'disable_feeds', 1);
add_action('do_feed_rss2', 'disable_feeds', 1);
add_action('do_feed_atom', 'disable_feeds', 1);
add_action('do_feed_rss2_comments', 'disable_feeds', 1);
add_action('do_feed_atom_comments', 'disable_feeds', 1);

21. Cambiare la lunghezza dell’excerpt in WordPress

WordPress limita la lunghezza degli estratti a 55 parole. Puoi aggiungere questo codice se devi cambiarlo:

function new_excerpt_length($length) {
   return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Basta sostituire 100 con il numero di parole che si desidera visualizzare negli estratti.

22. Aggiungere un utente amministratore in WordPress

Se hai dimenticato la password e l’email di WordPress, puoi aggiungere un utente amministratore aggiungendo questo codice tramite un client FTP:

function wpdl_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','wpdl_admin_account');

Importante: una volta effettuato l’accesso al tuo sito WordPress, non dimenticare di eliminare il codice dal tuo file functions.

23. Disabilitare il selettore lingua nella pagina di login

Se gestisci un sito web multilingue, WordPress mostra un selettore di lingua nella pagina di login.

Puoi facilmente disabilitarlo aggiungendo il seguente codice:

add_filter( 'login_display_language_dropdown', '__return_false' );

24. Mostrare il numero totale di utenti registrati in WordPress

Vuoi mostrare il numero totale di utenti registrati sul tuo sito WordPress? Aggiungi semplicemente questo codice:

function wpdl_user_count() {
   $usercount = count_users();
   $result = $usercount['total_users'];
   return $result;
}
// Creazione di uno shortcode per visualizzare il conteggio utenti
add_shortcode('user_count', 'wpdl_user_count');

Ora, devi solo aggiungere lo shortcode [user_count] al tuo post o pagina dove vuoi mostrare il numero totale di utenti.

25. Escludere categorie specifiche dal feed RSS

Vuoi escludere categorie specifiche dal tuo feed RSS di WordPress? Puoi aggiungere questo codice:

function exclude_category($query) {
   if ( $query->is_feed ) {
      $query->set('cat', '-5, -2, -3'); // Sostituisci con gli ID delle categorie da escludere (con il segno meno)
   }
   return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Per impostazione predefinita, WordPress converte un URL in un link cliccabile nei commenti. Puoi fermarlo aggiungendo il seguente codice:

remove_filter( 'comment_text', 'make_clickable', 9 );

27. Aggiungere classi CSS pari e dispari ai post WordPress

Potresti aver visto temi WordPress usare una classe pari o dispari per i commenti WordPress. Aiuta gli utenti a visualizzare dove finisce un commento e inizia il successivo.

Puoi usare la stessa tecnica per i tuoi post WordPress. Aggiungi semplicemente questo codice:

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

Puoi ora aggiungere CSS personalizzato per stilizzarli diversamente. Ecco un esempio:

.even {
   background:#f0f8ff;
}
.odd {
   background:#f4f4fb;
}

Il risultato finale sarà simile a questo:

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Colori di sfondo alternati

28. Aggiungere tipi di file aggiuntivi da caricare in WordPress

Per impostazione predefinita, WordPress ti consente di caricare un numero limitato dei tipi di file più comunemente usati. Tuttavia, puoi estenderlo per consentire altri tipi di file.

Aggiungi semplicemente questo codice:

function my_myme_types($mime_types){
   $mime_types['svg'] = 'image/svg+xml'; //Aggiunta estensione svg
   $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Aggiunta file photoshop
   return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Dovrai trovare i tipi mime per i tipi di file che vuoi consentire e poi usarli nel codice.

29. Cambiare il nome mittente nelle email di WordPress

WordPress utilizza un indirizzo email inesistente (wordpress@tuodominio.com) per inviare email in uscita per impostazione predefinita.

Questo indirizzo email potrebbe essere contrassegnato come spam dai provider di servizi email.

Usare il plugin WP Mail SMTP è il modo corretto per risolvere questo problema.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
WP Mail SMTP

Risolve i problemi di recapitabilità delle email e ti consente di scegliere un indirizzo email reale per inviare le tue email WordPress.

D’altra parte, se vuoi cambiarlo rapidamente in un indirizzo email reale, puoi aggiungere il seguente codice:

// Funzione per cambiare l'indirizzo email
function wpdl_sender_email( $original_email_address ) {
   return 'tua_email@example.com'; // Cambia con la tua email
}

// Funzione per cambiare il nome mittente
function wpdl_sender_name( $original_email_from ) {
   return 'Tuo Nome'; // Cambia con il tuo nome
}

// Collegamento delle nostre funzioni ai filtri WordPress
add_filter( 'wp_mail_from', 'wpdl_sender_email' );
add_filter( 'wp_mail_from_name', 'wpdl_sender_name' );

Il problema con questo metodo è che WordPress utilizza ancora la funzione mail() per inviare email, e tali email hanno maggiori probabilità di finire nello spam.

30. Aggiungere un box info autore nei post WordPress

Se gestisci un sito multi-autore e vuoi mostrare le biografie degli autori alla fine dei tuoi post, puoi provare questo metodo.

Inizia aggiungendo questo codice:

function wpdl_author_info_box( $content ) {

   global $post;

   // Rileva se è un post singolo con un autore del post
   if ( is_single() && isset( $post->post_author ) ) {

      // Ottieni il nome visualizzato dell'autore
      $display_name = get_the_author_meta( 'display_name', $post->post_author );

      // Se il nome visualizzato non è disponibile, usa il nickname come nome visualizzato
      if ( empty( $display_name ) )
      $display_name = get_the_author_meta( 'nickname', $post->post_author );

      // Ottieni informazioni biografiche o descrizione dell'autore
      $user_description = get_the_author_meta( 'user_description', $post->post_author );

      // Ottieni l'URL del sito web dell'autore
      $user_website = get_the_author_meta('url', $post->post_author);

      // Ottieni il collegamento alla pagina dell'archivio dell'autore
      $user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));

      // Ottieni Gravatar utente
      $user_gravatar = get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

      if ( ! empty( $display_name ) )

      $author_details = '<p class="author_name">Informazioni su ' . $display_name . '</p>';

      if ( ! empty( $user_description ) )
      // Se l'autore ha compilato la descrizione, verranno visualizzati l'avatar e la biografia.

      $author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

      $author_details .= '<p class="author_links"><a href="'. $user_posts .'">Visualizza tutti i post di ' . $display_name . '</a>'; 

      // Controlla se l'autore ha un sito web nel suo profilo
      if ( ! empty( $user_website ) ) {

         // Visualizza il link al sito web dell'autore
         $author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

      } else {
         // se non c'è un sito web dell'autore allora chiudi semplicemente il paragrafo
         $author_details .= '</p>';
      }

      // Passa tutte queste informazioni per pubblicare il contenuto
      $content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
   }
return $content;
}

// Aggiungi la nostra funzione al filtro del contenuto del post
add_action( 'the_content', 'wpdl_author_info_box' );

// Consenti HTML nella sezione biografia dell'autore
remove_filter('pre_user_description', 'wp_filter_kses');

Successivamente, dovrai aggiungere del CSS personalizzato per renderlo migliore.

Puoi usare questo CSS di esempio come punto di partenza:

.author_bio_section {
   background: none repeat scroll 0 0 #F5F5F5;
   padding: 15px;
   border: 1px solid #ccc;
   margin-top: 20px; /* Aggiunto margine */
}
.author_name {
   font-size:16px;
   font-weight: bold;
   margin-bottom: 10px; /* Aggiunto margine */
}
.author_details img {
   border: 1px solid #D8D8D8;
   border-radius: 50%;
   float: left;
   margin: 0 10px 10px 0;
}
.author_details p { /* Stile per i paragrafi interni */
   margin-bottom: 10px;
   line-height: 1.5;
}
.author_links { /* Stile per i link */
   clear: both; /* Pulisce il float dell'immagine */
   padding-top: 10px;
}

31. Disabilitare XML-RPC in WordPress

XML-RPC è un metodo che consente alle app di terze parti di comunicare con il tuo sito WordPress da remoto. Ciò potrebbe causare problemi di sicurezza e può essere sfruttato dagli hacker.

Per disattivare XML-RPC in WordPress, aggiungi il seguente codice:

add_filter('xmlrpc_enabled', '__return_false');

32. Collegare automaticamente le immagini in evidenza ai Post

Se il tuo tema WordPress non collega automaticamente le immagini in evidenza agli articoli completi, puoi provare questo metodo.

Aggiungi semplicemente questo codice:

function wpdl_autolink_featured_images( $html, $post_id, $post_image_id ) {
   // Aggiunta controllo per evitare il link nelle pagine singole
   if (! is_singular()) {
      $html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
   }
   return $html; // Ritorna $html in ogni caso
}
add_filter( 'post_thumbnail_html', 'wpdl_autolink_featured_images', 10, 3 );

33. Disabilitare l’editor a blocchi in WordPress

WordPress utilizza un editor moderno e intuitivo per scrivere contenuti e modificare il tuo sito web. Questo editor utilizza blocchi per elementi di contenuto e layout comunemente usati, motivo per cui è chiamato Editor a Blocchi.

Tuttavia, potresti aver bisogno di utilizzare il vecchio Editor Classico in alcuni casi d’uso.

Il modo più semplice per disabilitare l’editor a blocchi è utilizzare il plugin Classic Editor. Tuttavia, se non vuoi usare un plugin separato, aggiungi semplicemente il seguente codice:

// Per i tipi di post
add_filter('use_block_editor_for_post_type', '__return_false', 10);

Per maggiori dettagli, consulta il nostro tutorial su come disattivare l’editor a blocchi e utilizzare l’editor classico.

34. Disabilitare i widget a blocchi in WordPress

WordPress è passato dai widget classici ai widget a blocchi in WordPress 5.8. I nuovi widget a blocchi sono più facili da usare e ti danno più controllo sul design rispetto ai widget classici.

Tuttavia, alcuni utenti potrebbero voler ancora usare i widget classici. In tal caso, puoi usare il seguente codice:

add_filter( 'use_widgets_block_editor', '__return_false' );

35. Visualizzare la data di ultimo aggiornamento in WordPress

Quando i visitatori visualizzano un post o una pagina sul tuo blog WordPress, il tuo 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 regolarmente aggiornati. In queste pubblicazioni, visualizzare la data e l’ora dell’ultima modifica del post è essenziale.

Puoi mostrare la data dell’ultimo aggiornamento usando il seguente codice:

function wpdl_last_updated_date( $content ) {
   if ( is_single() || is_page() ) { // Applicabile a post singoli e pagine
      $u_time = get_the_time( 'U' );
      $u_modified_time = get_the_modified_time( 'U' );
      // Mostra solo se la modifica è avvenuta dopo almeno un giorno dalla pubblicazione
      if ( $u_modified_time >= $u_time + 86400 ) {
         $updated_date = get_the_modified_time( 'j F Y' ); // Formato data italiano
         $updated_time = get_the_modified_time( 'H:i' ); // Formato ora italiano
         $updated = '<p class="last-updated">';
         $updated .= sprintf(
            esc_html__( 'Ultimo aggiornamento il %1$s alle %2$s' ), // Testo in italiano
            $updated_date,
            $updated_time
         );
         $updated .= '</p>';
         $content = $content . $updated; // Aggiungi la data alla fine del contenuto
      }
   }
return $content;
}
add_filter( 'the_content', 'wpdl_last_updated_date' );

36. Utilizzare nomi file minuscoli per i caricamenti

Se gestisci un sito web multi-autore, gli autori potrebbero caricare immagini con nomi file in maiuscolo e minuscolo.

L’aggiunta del seguente codice assicura che tutti i nomi file siano in minuscolo:

function wpdl_sanitize_file_name_lowercase( $filename ) {
   $info = pathinfo( $filename );
   $ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
   $name = basename( $filename, $ext );
   return strtolower( sanitize_title( $name ) ) . $ext;
}
add_filter( 'sanitize_file_name', 'wpdl_sanitize_file_name_lowercase', 10 );

37. Disabilitare la barra di amministrazione WordPress sul frontend

Per impostazione predefinita, WordPress visualizza la barra di amministrazione in alto quando un utente connesso visualizza il tuo sito web.

Puoi disabilitare la barra di amministrazione per tutti gli utenti eccetto gli amministratori del sito. Aggiungi semplicemente il seguente codice:

add_action('after_setup_theme', 'remove_admin_bar');
function remove_admin_bar() {
   if (!current_user_can('administrator') && !is_admin()) {
      show_admin_bar(false);
   }
}

38. Cambiare il testo di saluto “Ciao” nell’area admin

WordPress visualizza un saluto “Ciao, [NomeUtente]” nella dashboard di WordPress.

Puoi cambiare il saluto predefinito con il tuo aggiungendo il seguente codice:

function replace_howdy( $wp_admin_bar ) {
   $my_account = $wp_admin_bar->get_node('my-account');
   $newtitle = str_replace( 'Ciao,', 'Benvenuto,', $my_account->title ); // Cambia "Benvenuto," con il tuo saluto
   $wp_admin_bar->add_node( array(
      'id' => 'my-account',
      'title' => $newtitle,
   ) );
}
add_filter( 'admin_bar_menu', 'replace_howdy', 25 );

39. Disabilitare la modifica del codice nell’editor a blocchi

L’editor a blocchi ti consente di passare all’Editor del Codice. Questo è utile se devi aggiungere manualmente del codice HTML.

Tuttavia, potresti voler limitare questa funzione agli amministratori del sito. Puoi aggiungere il seguente codice:

function disable_code_editing_for_non_admins( $settings ) {
   if ( ! current_user_can( 'manage_options' ) ) {
      $settings['codeEditingEnabled'] = false;
   }
return $settings;
}
add_filter( 'block_editor_settings_all', 'disable_code_editing_for_non_admins' );

40. Disabilitare l’editor file di plugin / temi

WordPress viene fornito con un editor integrato in cui è possibile modificare i file dei plugin (Plugin » Editor file plugin) e dei temi classici (Aspetto » Editor file tema).

Non consigliamo di utilizzare questi editor. Per disabilitare l’editor plugin/tema, aggiungi il seguente codice:

define( 'DISALLOW_FILE_EDIT', true );

Nota: Questa è una costante, va aggiunta idealmente in wp-config.php, ma aggiungerla in functions.php tramite define se non già definita funziona nella maggior parte dei casi, anche se meno standard.

41. Disabilitare le email di notifica nuovo utente

Per impostazione predefinita, WordPress invia una notifica email quando un nuovo utente si iscrive al tuo sito web.

Per disattivare queste notifiche all’admin, puoi aggiungere quanto segue:

// Disabilita l'email di notifica all'admin per i nuovi utenti
add_filter( 'wp_send_new_user_notifications_to_admin', '__return_false' );
// Disabilita l'email di notifica all'admin per la creazione di utenti dall'admin (opzionale)
add_filter( 'send_new_user_notification_to_admin', '__return_false' );

42. Disabilitare le notifiche email di aggiornamento automatico

Occasionalmente, WordPress può installare automaticamente aggiornamenti di sicurezza e manutenzione o aggiornare un plugin. Invia una notifica email di aggiornamento automatico dopo ogni aggiornamento.

Puoi aggiungere questo codice per disattivare queste notifiche email:

// Disabilita email per aggiornamenti core
add_filter( 'auto_core_update_send_email', '__return_false' );
// Disabilita email per aggiornamenti plugin
add_filter( 'auto_plugin_update_send_email', '__return_false' );
// Disabilita email per aggiornamenti temi
add_filter( 'auto_theme_update_send_email', '__return_false' );

43. Aggiungere un link per duplicare facilmente un post

Hai mai desiderato un modo più semplice per copiare rapidamente tutto il contenuto di un post per la modifica senza toccare il post pubblicato?

Il seguente snippet di codice aggiungerà un’opzione per duplicare facilmente un post con tutto il suo contenuto:

// Aggiunge il link Duplica alle azioni per post e pagine
function rd_duplicate_post_as_draft(){
   global $wpdb;
   if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
      wp_die('Nessun post da duplicare è stato fornito!');
   }

   // Verifica nonce
   if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
   return;

   // ottenere l'ID del post originale
   $post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
   // and all the original post data then
   $post = get_post( $post_id );

   // se non vuoi che l'utente corrente sia il nuovo autore del post, modifica le prossime due righe in questo modo: $new_post_author = $post->post_author;   $current_user = wp_get_current_user();
   $new_post_author = $current_user->ID;

   // se i dati del post esistono, crea il duplicato del post
   if (isset( $post ) && $post != null) {

      // nuovo array di dati post
      $args = array(
         'comment_status' => $post->comment_status,
         'ping_status' => $post->ping_status,
         'post_author' => $new_post_author,
         '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', // Imposta come bozza
         'post_title' => $post->post_title . ' (Copia)', // Aggiunge (Copia) al titolo
         'post_type' => $post->post_type,
         'to_ping' => $post->to_ping,
         'menu_order' => $post->menu_order
      );

      // inserisci il post tramite la funzione wp_insert_post()
      $new_post_id = wp_insert_post( $args );

      // ottieni tutti i termini del post corrente e li imposta sulla bozza del nuovo post
      $taxonomies = get_object_taxonomies($post->post_type); // restituisce un array di nomi di tassonomia per tipo di post, ad esempio array("category", "post_tag");
      foreach ($taxonomies as $taxonomy) {
         $post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
         wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
      }

      // duplica tutti i metadati dei post solo in due query SQL
      $post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
      if (count($post_meta_infos)!=0) {
         $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
         foreach ($post_meta_infos as $meta_info) {
            $meta_key = $meta_info->meta_key;
            if( $meta_key == '_wp_old_slug' ) continue; // Non copiare il vecchio slug
            $meta_value = addslashes($meta_info->meta_value);
            $sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
         }
         $sql_query.= implode(" UNION ALL ", $sql_query_sel);
         $wpdb->query($sql_query);
      }

      // infine, reindirizza alla schermata di modifica del post per la nuova bozza
      wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
      exit;
   } else {
      wp_die('Errore creazione post, impossibile trovare il post originale: ' . $post_id);
   }
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );

// Aggiungi il collegamento duplicato all'elenco delle azioni per post_row_actions
function rd_duplicate_post_link( $actions, $post ) {
   if (current_user_can('edit_posts')) {
      $actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplica questo elemento" rel="permalink">Duplica</a>';
   }
   return $actions;
}
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'rd_duplicate_post_link', 10, 2 ); // Aggiunge anche alle pagine

Dopo aver aggiunto il codice, vai alla schermata Articoli » Tutti gli articoli e passa il mouse sul titolo di un articolo.

Noterai un nuovo link “Duplica” sotto le opzioni.

46 Trucchi Functions Php WordPress Sblocca Il Tuo Sito
Link al post duplica

44. Rimuovere il pannello di benvenuto dalla dashboard admin di WordPress

Il Pannello di Benvenuto appare nella dashboard di amministrazione di WordPress. Può essere facilmente chiuso o nascosto facendo clic sul pulsante “Impostazioni Schermata“.

Tuttavia, se stai lavorando per creare un’esperienza dashboard più pulita per gli utenti, potresti volerlo nascondere permanentemente.

Aggiungi il seguente codice per disabilitarlo per tutti gli utenti sul tuo sito:

remove_action('welcome_panel', 'wp_welcome_panel');

45. Aggiungere una colonna immagine in evidenza per i post nell’admin WordPress

Per impostazione predefinita, WordPress mostra le immagini in evidenza solo quando visualizzi il tuo sito o quando modifichi un post o una pagina.

Il seguente codice aggiungerà una nuova colonna alla schermata Articoli » Tutti gli articoli per le immagini in evidenza:

// Aggiunge la colonna
function add_featured_image_column( $columns ) {
   $columns['featured_image'] = 'Immagine in Evidenza';
   return $columns;
}
add_filter('manage_posts_columns' , 'add_featured_image_column'); // Per i post
add_filter('manage_pages_columns' , 'add_featured_image_column'); // Per le pagine

// Popola la colonna
function display_featured_image_column($column_name, $post_id) {
   if ($column_name == 'featured_image') {
      echo get_the_post_thumbnail($post_id, array(80, 80)); // Dimensione thumbnail
   }
}
add_action('manage_posts_custom_column' , 'display_featured_image_column', 10, 2); // Per i post
add_action('manage_pages_custom_column' , 'display_featured_image_column', 10, 2); // Per le pagine

// Aggiunge stile CSS per la colonna
function add_featured_image_column_style() {
   echo '<style>.column-featured_image { width: 100px; }</style>'; // Imposta larghezza colonna
}
add_action('admin_head', 'add_featured_image_column_style');

46. Bloccare l’area admin di WordPress a tutti eccetto gli amministratori

Alcuni siti web WordPress potrebbero richiedere agli utenti di registrare un account. Ad esempio, un sito di membership WordPress o un negozio eCommerce.

La maggior parte di tali plugin impedirà a quegli utenti di accedere all’area admin. Tuttavia, se non stai usando un plugin simile, puoi aggiungere il seguente codice per bloccare l’accesso all’area admin a tutti gli utenti eccetto gli amministratori:

function restrict_admin_access() {
   if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
      wp_redirect( home_url() );
      exit;
   }
}
add_action( 'admin_init', 'restrict_admin_access', 1 );

Gli utenti con altri ruoli possono comunque accedere ai propri account, ma dopo aver effettuato l’accesso verranno reindirizzati alla home page.

Speriamo che questo articolo ti abbia aiutato a imparare alcuni nuovi utili trucchi functions per il file functions.php in WordPress.

Se questo articolo vi è piaciuto, seguiteci su X e Facebook per rimanere aggiornati su tutte le novità e consigli utili su WordPress!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *