Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Aggiungere hook (ganci) personalizzati in Worpdress: i filtri personalizzati

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Adding Custom Hooks in WordPress.
Adding Custom Hooks in WordPress: Custom Actions

Italian (Italiano) translation by Roberta C (you can also view the original English article)

In questa serie in due parti stiamo dando un'occhiata al sistema di hook di Wordpress. In particolare, stiamo vedendo più da vicino azioni e filtri e il loro ruolo nello sviluppo di WordPress.

Anche se entrambi vengono definiti come hook, ciascuno svolge un ruolo specifico nello sviluppo di WordPress. E se stai cercando di diventare uno sviluppatore di WordPress più esperto, è importante non solo capire la differenza tra loro, ma anche sapere come è possibile implementare hook personalizzati.

Nel primo post della serie, abbiamo definito che cosa sono gli hook, abbiamo visto come sono stati utilizzati, abbiamo analizzato le azioni e visto come definire la nostra propria. Se non hai letto il primo articolo, ti consiglio vivamente di farlo prima di procedere con questo tutorial.

Prima di iniziare con gli hook, faccio un breve riassunto di quello di cui ho parlato nel precedente articolo, e andremo avanti a partire da li.

Detto ciò, diamoci da fare.

Un breve ripasso.

Nel precedente articolo, abbiamo visto come gli hook sono un'implementazione basata sul modello di progettazione event-driven. Che abbiamo definito in questo modo:

  • Il software in alcuni specifici punti trasmette un messaggio, comunica che è successo qualcosa.    
  • Noi sviluppatori siamo in grado di scrivere un codice che intercetta questo messaggio e risponde con un codice personalizzato.

E poi abbiamo esaminato esattamente come questo modello è implementato in WordPress. Abbiamo parlato di come possiamo usarlo e di come possiamo realizzare la nostra azione personalizzata.

Abbiamo riconosciuto una sottile distinzione:

Le azioni servono per lavorare con le funzionalità, i filtri con i dati.  

Le azioni ci consentono di modificare il comportamento di qualcosa, i filtri ci permettono di modificare i dati prima di essere salvati, estratti o visualizzati sullo schermo. In questo tutorial, vedremo come lavorare con i filtri prima che i dati vengano stampati sullo schermo, vedremo ad esempio come trasformare il testo in minuscolo e rimuovere le vocali nel testo.

In definitiva, si tratta di cercare di divertirsi e di vedere risultati tangibili attraverso il lavoro che stiamo facendo, nel frattempo imparariamo a conoscere questo potente aspetto di WordPress.

Prima di farlo, si suppone che abbiamo il nostro ambiente di sviluppo in locale configurato e pronto all'uso.

Iniziamo

Come ho detto nel precedente articolo il nostro ambiente di sviluppo in locale dovrebbe essere costituito da:

  • WordPress 4.5.2
  • il tuo IDE preferito 
  • un web server
  • una copia di PHP
  • un database

Nella maggior parte dei casi può essere facilmente installato Apache, PHP e MySQL. Se sei più esperto puoi usare qualcosa come Nginx e un database alternativo. Se questo è il caso, va bene, ma per gli scopi di questo tutorial è sufficiente il primo.

Se non hai pronta l'installazione, non preoccuparti, trovi qua tutte le info. Il tutorial indicato ti fornirà tutte le informazioni necessarie per iniziare a lavorare con WordPress in locale.

Se siamo pronti, possiamo procedere.

Capire i filtri di Wordpress

Il Codex di Wordpress ci fornisce un utile set di risorse per imparare tutto riguardo i filtri. Come abbiamo detto, definisce i filtri in questo modo:

I filtri personalizzati si differenziamo dalle azioni personalizzate perché le azioni personalizzate consentono di aggiungere o rimuovere codice da azioni esistenti. Invece i i filtri personalizzati consentono di sostituire dati specifici (ad esempio una variabile) trovati all'interno di un'azione esistente.

Se stai cercando un intero elenco dei filtri disponibili in WordPress, puoi fare riferimento alla questa pagina del Codex. Trovi l'elenco dei filtri, la maggior parte dei quali linkano a una propria pagina di documentazione.

Se sei curioso di sapere se esista un filtro specifico, puoi fare riferimento a questa pagina. Allo stesso modo, puoi visitare la pagina di quel filtro particolare per conoscere gli argomenti, i parametri, vedere un esempio di definizione della funzione e sapere come usarla.

Una appunto riguardo Parametri e Priorità.

Prima di andare avanti, voglio assicurarmi che capiamo tutti a che cosa mi riferisco quando parlo di priorità e di numero di argomenti, all'interno del contesto di Wordpress.

Prendiamo per esempio la seguente linea di codice:

Ci dice quattro cose:

  1. il nome del filtro al quale ci stiamo collegando
  2. il nome della funzione che deve essere chiamata
  3. la priorità con la quale la funzione deve essere chiamata
  4. quanto parametri la funzione accetta

In linea generale, i primi due punti sono di immediata comprensione, gli altri due possono confondere i nuovi sviluppatori, ma non è un concetto difficile da capire.

In primo luogo, pensiamo priorità come quando viene chiamata la funzione. Ricorda, dato che un hook può avere molteplici funzioni associate, la priorità consente di definire quando (in termini di presto o tardi ) la funzione viene chiamata. Più basso è il numero, maggiore sarà la priorità, maggiore è il numero, minore sarà la priorità.

Il numero che indica quanti parametri la funzione accetta. Se non si specifica un numero, ne accetterà o nessuno o qualunque di default previsti della funzione. Se si desidera passare un numero diverso rispetto a quanto previsto di default, bisogna specificare il numero di parametri che la funzione accetta. Lo vedremo nel dettaglio più avanti nel tutorial.

Lavorare con i Filtri

Per iniziare a lavorare con i filtri, creiamo il nostro file nella root del tema twentysixteen. Chiameremo il file tutsplus-filters.php. Quindi, nel file functions.php di twentysixteen, aggiungeremo la seguente riga di codice:

Questo farà in modo che tutto il nostro codice personalizzato stia unico file che che possiamo facilmente rimuovere quando non vogliamo usarlo. Questo ci permette anche di circoscriverlo in una propria zona in maniera tale da non essere confuso con il resto del codice del tema.

Filtrare il Contenuto di un Post

Prima di iniziare a scrivere il nostro filtro, è importante capire come funzionano i filtri. Siccome i filtri servono per modificare i dati e i post sono uno degli elementi costitutivi di un blog, diamo un'occhiata a come siamo in grado di filtrare il contenuto di un post del blog prima che venga visualizzata sullo schermo.

Si noti come questo esempio è simile a quello che abbiamo visto con le azioni di WordPress, a differenza di modificare una funzionalità stiamo modificando i dati.

1.Registriamo il Nostro Filtro

Per registrare il nostro filtro, abbiamo bisogno di due informazioni:

  1. il nome del filtro a cui stiamo agganciando la nostra funzione
  2. una funzione che sarà responsabile del filtro dei dati

Dato che stiamo andando a modificare il contenuto del post, possiamo usare il filtro the_content. Il succo della funzione è questo:

  • accetta un solo argomento, il contenuto del post, permette di modificarlo e quindi lo restituisce

In questo caso, WordPress passa il contenuto del post nella funzione, e una volta cambiati i dati la funzione viene restituita.

Chiameremo la funzione tutsplus_the_content e quindi la registriamo in WordPress.

A livello fondamentale, questo è ciò a cui la funzione dovrebbe assomigliarsi. Naturalmente, non fa molto. Restituisce semplicemente il contenuto che le viene passato.

2. Modificare il contenuto

Facciamo in modo che questa funzione modifichi i dati giusto un po'. In particolare, facciamo così:

  1. assicuriamoci di essere nella vista singola del post
  2. aggiungiamo un messaggio all'inizio del post che spiega che il contenuto del post è stato alterato

Non è l'uso più comune di un filtro, ma serve per avere un'idea di come è possibile modificare la funzione.

Il codice dovrebbe essere più o meno cosi. Fai attenzione anche ai commenti del codice:

Se guardiamo la pagina nella vista index in quella del blog, vedremo il post standard senza alcuna modifica. Se invece andiamo nella vista singola del post vedremo la nuova frase apparire ad inizio pagina di ciascuno. In particolare vedremo:

This is a custom message created by a hooked function

Ma facciamo qualcosa di un po' più avanzato. Oltre ad aggiungere un messaggio al principio del post, rimuoviamo anche tutte le vocali dal contenuto prima che venga restituito da Wordpress.

Per farlo, usiamo il codice seguente:

Implementa il codice, salva e quindi visita qualsiasi post della tua installazione di WordPress.

Tecnicamente, la funzione qui sopra sta facendo due cose, raccomando, per scrivere un codice più pulito, di dividerlo in due funzioni separate e chiamarle dalla nostra funzione principale filtrata.

Ecco come potrebbe essere il risultato finale:

Ancora una volta, questa non è un'implementazione pratica o utile di un filtro, ma mostra esattamente cosa siamo in grado di fare quando abbiamo istituito la nostra propria funzione.

Definizione dei Filtri Personalizzati

È facile trarre vantaggio dai filtri pre-esistenti. Come accennato in precedenza, tratta di fare chiamata add_filter, specificando il nome del filtro e poi passando il nome della funzione che vogliamo richiamare per filtrare i dati.

Ma cosa succede se vogliamo creare il nostro filtro personalizzato? Se volessimo creare un filtro che trasformi in minuscolo tutto il testo nel post? O se volessimo creare un filtro che rimuova tutte le vocali da un post?

Capire apply_filters

Cominciamo a conoscere apply_filters. Questa particolare funzione accetta due argomenti:

  1. un tag che identifica il nome del filtro 
  2. un valore che fa riferimento al valore su cui vengono applicati i filtri

Se guardi un esempio di, diciamo, get_the_contentnel core di WordPress, ti accorgi di come passa il valore specificato attraverso the_content_more_link via apply_filters.

Questo ci serve per capire, ma come possiamo definire i nostri propri filtri personalizzati in maniera tale che gli altri possano chiamare apply_filters su funzionalità che abbiamo sviluppato?

Aggiungere i nostri propri filtri

Aggiungere i propri filtri è facile. Abbiamo bisogno di specificare le stesse quattro cose che abbiamo visto sopra:

  1. il nome del filtro
  2. la funzione che il filtro deve chiamare
  3. la priorità della funzione
  4. il numero degli argomenti che accetta

Iniziamo con un semplice esempio.

Tutto Minuscolo

facciamo in modo che il contenuto dell'intero post sia scritto in minuscolo.

Prima di tutto, dobbiamo definire il filtro con una priorità di 10. Sappiamo che può accettare un solo argomento, il contenuto, quindi scriveremo il numero 1 quando aggiungiamo il nostro filtro:

Successivamente, definiremo il corpo di una funzione semplice che utilizza la funzione strtolower di PHP che trasforma in lettere minuscole qualsiasi valore le viene passato.

La versione finale del codice sarà più o meno così:

Abbastanza semplice da capire, vero? Vediamo ancora un esempio basato su alcune funzionalità di cui abbiamo già parlato.

Rimuovere tutte le vocali

Per rimuovere le vocali possiamo usare la stessa funzione che abbiamo già definito. Tuttavia, dobbiamo cambiare il modo in cui il filtro è registrato con WordPress, e assicurarci che la funzione registrata con WordPress chiami correttamente apply_filters.

Siccome abbiamo già visto come aggiungere il nostro filtro, specificare una priorità, definire il numero di argomenti che accetta e come implementare una funzione, non voglio sprecare altro tempo con dettagli insignificanti.

Ecco il filtro:

E così è come può essere richiamato all'interno del hook iniziale.

Chiamiamoli tutti insieme

Infine, è possibile chiamare apply_filters più volte:

Si noti che questo ottiene lo stesso risultato dei casi precedenti, ma lo fa condensato in una sola riga di codice. Ci sono altri modi in cui potrebbe essere scritto, ma lo scopo di questo tutorial è quello di mostrarti come scrivere i tuoi propri filtri e come trarre vantaggio usando apply_filters nel tuo lavoro.

Conclusione

Questo tutorial chiude la nostra introduzione agli hook di Wordpress Attraverso questa serie, abbiamo scoperto come trarre vantaggio dai filtri e azioni esistenti e anche come creare e implementare le nostre proprie.

Il sistema degli hook è uno degli aspetti di Wordpress più potenti per gli sviluppatori, per questo è importante iniziare a entraci in confidenza. Usandolo, non sei solo in grado di manipolare il comportamento e i dati di WordPress, ma sei in grado di definire il tuo proprio hook che altri sviluppatori possono utilizzare in tutto il codice.

Sentitevi liberi di continuare a usare e modificare il codice che è stato fornito in entrambi questi tutorial.

Infine, se siete alla ricerca di altre utility per aiutarvi costruire il vostro set di strumenti per Wordpress non dimenticate di vedere cosa abbiamo in Envato Market.

Ricorda che è possibile vedere tutti i miei corsi e tutorial sulla pagina del mio profilo e mi puoi seguire sul mio blog e/o Twitter @tommcfarlin dove parlo di varie pratiche di sviluppo software utilizzabili in Wordpress. 

Non esitare a lasciare commenti o domande nel box qui sotto, risponderò a ciascuno.

Related Resources

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.