Snippets utili da inserire nel file function.php per modificare o aggiungere funzionalità a WordPress
Cosa sono gli Snippets di WordPress?
Gli Snippets sono righe di codice in linguaggio PHP che puoi utilizzare per estendere le funzionalità di un sito WordPress.
Un snippet è come se fosse un mini plugin che estende le funzioni di WordPress.
Per aggiungere snippets basta modificare con l’editor il file functions.php
del tuo tema attivo .
Per qualunque modifica ti consiglio la creazione di un tema Child poichè ogni stringa di codice aggiunta al file functions
viene automaticamente sovrascritta ad ogni aggiornamento dei file di sistema di WordPress. Per maggiori infoleggi l’articolo Come provare in locale un sito WordPress
Come modificare il file functions.php in WordPress
Ecco come modificare il file functions.php
in WordPress tramite l’editor di temi della dashboard:
- Accedi al tuo sito tramite
wp-admin
come amministratore. - Accedi al codice sorgente del tuo sito in
Aspetto > Editor temi
. - Verifica il tema o selezionane uno nuovo utilizzando il menu a discesa
Seleziona tema per modificarlo
e fai clic suSeleziona
. - Nel menu
File del tema
, seleziona il filefunctions.php
cliccando sul titolo corrispondente.
Salva le modifiche con l’apposito bottone.
Snippets di default di WordPress
In questa tabella hai un elenco di alcuni snippet di default che puoi trovare in una installazione WordPress.
<?php the_content(); ?> | Contenuto dei posts |
<?php if(have_posts()) : ?> | Controlla se ci sono post |
<?phpwhile(have_posts()) : the_post(); ?> | Mostra i post se disponibili |
<?php endwhile; ?> | Chiude la funzione di loop ‘while’ che legge i post. |
<?php get_header(); ?> | Contenuto file Header.php |
<?php get_footer(); ?> | Contenuto file Footer.php |
<?php bloginfo(‘description’); ?> | Descrizione sito |
<?php posts_nav_link(); ?> | Prossimo e precedente link post |
<?php get_calendar(); ?> | Inserisci calendario di WordPress |
<?php wp_loginout(); ?> | Inserisci Login |
Esempi pratici di snippet personalizzati
Ecco alcuni esempi di snippet che potrebbero tornarti utili nel tuo progetto WordPress.
# Registrare un widget
Codice per aggiungere un widget al tuo tema, in questo caso al footer.
[COLORBOX]
/* widget footer */
register_sidebar( array(
'name' => 'Footer Sidebar 1',
'id' => 'footer-sidebar-1',
'description' => 'Appare nel footer',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
[DIV]
# Creare uno shortcode tramite funzione
Un shortcode viene avviato inserendolo nel testo dell’articolo o pagina.
Nell’esempio proposto, lo shortcode [ICONS] richiama una classe CSS per visualizzare un’icona nel testo.
Puoi personalizzare ICONS con un nome a piacere. Evidenziata anche la riga con l’istruzione richiamabile.
[COLORBOX]
// funzione che si avvia quando è chiamato uno shortcode
function GIAMPIMEN_shortcodeICONS() {
return '<SPAN style="color:green; vertical-align:upper;"><i class="fa fa-external-link"></i></SPAN>';
}
// register shortcode
add_shortcode('ICONS', 'giampimen_shortcodeICONS');
// FINE
[DIV]
# Consentire upload file su WordPress
Di base non è consentito l’upload di alcuni tipi di file in WordPress, ma con uno snippets è possibile saltare questa limitazione.
[COLORBOX]
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes=array() ) {
/ qui possiamo aggiungere le estensioni che ci servono nell'array dei mimes
$existing_mimes['zip'] = 'application/zip'; //Upload archivi ZIP
$existing_mimes['gz'] = 'application/x-gzip'; //Upload archivi compressi
$existing_mimes['epub'] = 'application/epub+zip';
$existing_mimes['mobi'] = 'application/x-mobipocket-ebook';
$existing_mimes['m4r'] = 'audio/aac';
$existing_mimes['aif'] = 'audio/x-aiff'; $existing_mimes['aiff'] = 'audio/aiff';
$existing_mimes['psd'] = 'image/photoshop'; //Upload file photoshop
$existing_mimes['exe'] = 'application/octet-stream';
$existing_mimes['apk'] = 'application/vnd.android.package-archive';
$existing_mimes['msi'] = 'application/x-ole-storage'; $existing_mimes['csv'] = 'text/csv'; // Upload file testuali
$existing_mimes['xml'] = 'text/xml'; //Upload file xml,svg,etc.
$existing_mimes['svg'] = 'image/svg+xml'; //Aggiunta estensioni svg
return $existing_mimes;
}
[DIV]
# Disattivare la barra amministratore
Disabilitare la barra di amministrazione a tutti gli utenti eccetto l’amministratore con un snippet
[COLORBOX]
add_action('after_setup_theme'
,
'remove_admin_bar'
);
function
remove_admin_bar() {
if
(!current_user_can(
'administrator'
) && !is_admin()) {
show_admin_bar(false);
}
}
Per disabilitare la barra a tutti gli utenti compreso l’amministratore.
/* Disable WordPress Admin Bar for all users */
add_filter(
'show_admin_bar'
,
'__return_false'
);
[DIV]
# Ripristinare il classic widget
Dalla versione WordPress 5.8 è stato rimosso il classico editor di widget a favore dell’editor blocchi Gutenberg.
Se vuoi ripristinare la gestione classica dei Widget ecco alcune linee di codice.
[COLORBOX]
function example_theme_support() {
remove_theme_support( ‘widgets-block-editor’ );
}
add_action( ‘after_setup_theme’, ‘example_theme_support’ );
[DIV]
# Mostrare post popolari senza plugin
Codice per mostrare i post più popolari senza utilizzare un plugin
Codice da inserire nel file functions.php:
[COLORBOX]
function count_post_visits() {
if( is_single() ) {
global $post;
$views = get_post_meta( $post->ID, ‘my_post_viewed’, true );
if( $views == ” ) {
update_post_meta( $post->ID, ‘my_post_viewed’, ‘1’ );
} else {
$views_no = intval( $views );
update_post_meta( $post->ID, ‘my_post_viewed’, ++$views_no );
}
}
}
add_action( ‘wp_head’, ‘count_post_visits’ );
[DIV]
Ora devi incollare il codice qui sotto nel file del tuo tema dove vuoi visualizzare i post popolari:
[COLORBOX]
$popular_posts_args = array(
‘posts_per_page’ => 3,
‘meta_key’ => ‘my_post_viewed’,
‘orderby’ => ‘meta_value_num’,
‘order’=> ‘DESC’
);
$popular_posts_loop = new WP_Query( $popular_posts_args );
while( $popular_posts_loop->have_posts() ):
$popular_posts_loop->the_post();
// Loop continues
endwhile;
wp_reset_query();
[DIV]
Conclusione
Con un semplice editor puoi modificare il file functions.php
aggiungendo funzionalità al tuo tema WordPress senza utilizzare plugin.
Risorse in rete
■ How to Disable Widget Blocks in WordPress (Restore Classic Widgets) (wpbeginner.com)
■ 16 Useful Code Snippets for WordPress (wpkube.com)