Finora hai aggiunto i ganci di azione alla struttura del tema e hai scritto alcune funzioni attivate tramite tali hook. Il prossimo passo è aggiungere alcuni filtri, che ti danno ancora più flessibilità.
Prima di continuare, è utile dare una rapida panoramica della differenza tra azione e hook del filtro:
Per maggiori dettagli, guarda questa fantastica guida all'azione e ai ganci per filtri.
Quindi accedi al gancio del filtro usando add_filter ()
funzione, come segue:
Ciò che aggiungi alla funzione sostituirà il codice filtrabile nel framework, quindi è qui che si apportano le modifiche o le sostituzioni.
Per seguire questo tutorial, avrai bisogno di:
In questo tutorial, aggiungerò tre hook di filtro al framework:
Ciò significa che in futuro entrambi possono essere modificati o sovrascritti da un tema o un plug-in secondario. Potresti aggiungere molti altri filtri alla struttura del tuo tema: ovunque tu stia aggiungendo codice o marcatura che potresti voler cambiare in un secondo momento, puoi usare un filtro per consentire la realizzazione di tale modifica senza dover creare un nuovo modello file in un tema figlio.
Inizia con il titolo e la descrizione del sito. Apri i tuoi temi header.php
file e trova il seguente codice:
"title =""rel =" home ">
Invece di scrivere un filtro per tutto questo, è meglio aggiungere un filtro a ciascun titolo del sito e descrizione del sito, in modo da poter modificare o modificare l'output per uno o entrambi.
In ogni caso, si sostituisce il bloginfo ()
funzione con il get_bloginfo ()
funzione, quindi aggiungere eco
prima di apply_filters ()
funzione. Iniziamo con il titolo del sito. Modifica il codice all'interno del h1
elemento in modo che legga:
"title =""rel =" home ">
Come puoi vedere, ho aggiunto il apply_filters ()
funzione due volte qui - una volta per l'attributo titolo del collegamento, e poi ancora per il testo visualizzato. Il nuovo codice è qui sotto:
Questo crea un filtro chiamato wptutsplus_sitetitle
e poi lo applica al get_bloginfo ('nome')
funzione. Questo è quindi echeggiato.
Ora facciamo lo stesso con la descrizione del sito. Questo è un po 'più semplice in quanto non c'è alcun collegamento. Modifica il h2
elemento in modo che legga:
Di nuovo, questo non influenzerà il contenuto di output di quell'elemento ma ti darà un filtro che puoi usare per cambiarlo in un secondo momento.
Successivamente, aggiungerò un filtro al colophon, che è contenuto in una funzione nel mio functions.php
file. Ciò consentirà agli utenti del mio framework di modificare o sovrascrivere il contenuto del colophon.
Primo aperto, il tuo functions.php
file e trova questo blocco di codice:
function wptp_colophon () ?>© "> 2014 WordPress. Ora prendi la linea che restituisce il nome del blog all'interno di un link e avvolgi ciascuna delle due funzioni in un
apply_filters ()
funzione in modo che legga:function wptp_colophon () ?>& copy ">)?>"> 2014 WordPress. Qui, ho creato due filtri:
echo apply_filters ('wptp_colophon_link', home_url ('/')
si applica al collegamento a cui punta il nome.echo apply_filters ('wptp_colophon_name', get_bloginfo ('name')))
si applica al nome stesso.Se volessi cambiare ognuno di questi in un secondo momento, potrei farlo con un paio di semplici funzioni, come segue:
function wptp_amend_colophon_name () $ name = 'Rachel McCollin'; return $ name; add_filter ('wptp_colophon_name', 'wptp_amend_colophon_name'); function wptp_amend_colophon_link () $ link = 'http://rachelmccollin.co.uk'; return $ link; add_filter ('wptp_colophon_link', 'wptp_amend_colophon_link');
Ognuna di queste funzioni restituisce del contenuto statico al posto della funzione php nel filtro originale, sostituendo l'url di casa e il nome del blog con il mio nome e l'url del mio blog:
Qui, ho aggiunto un paio di semplici filtri che permetteranno a te o ai tuoi utenti del framework di cambiare l'output senza dover creare nuovi file template. Come abbiamo visto, un filtro è diverso da un'azione in quanto consente di modificare ciò che è già stato generato dall'amo, piuttosto che aggiungere qualcosa di nuovo a un hook vuoto.
In alcuni casi, potresti scoprire che un filtro sta diventando troppo complesso, nel qual caso dovrai scrivere una nuova funzione o, a volte, creare un nuovo file modello. Ad esempio, se volessi apportare modifiche più significative al colophon, aggiungerei una nuova funzione chiamata wptp_colophon ()
al tema mio figlio - come il wptp_colophon ()
la funzione nel framework è collegabile, la mia nuova funzione lo sovrascriverà. Ma se volessi sostituire l'intero piè di pagina, dovrei creare un nuovo footer.php
file.
I filtri possono essere comunque utili per evitare di dover fare un lavoro così drastico - quando stai scrivendo i file modello del framework, considera cosa viene prodotto che gli utenti potrebbero voler modificare e avvolgere in un apply_filters ()
funzione.