Homepage » WordPress » Come utilizzare i ganci Action di WordPress nella personalizzazione del tema

    Come utilizzare i ganci Action di WordPress nella personalizzazione del tema

    I temi figlio di WordPress offrono un modo relativamente semplice per personalizzare l'aspetto di un tema. Se le opzioni del tema non forniscono scelte di progettazione adeguate, è sufficiente aggiungere una nuova regola al file di fogli di stile predefinito del tema figlio denominato style.css. Ma cosa succede quando lo vuoi anche tu modificare la funzionalità del tema? Questo è uno dei casi in cui le azioni di WordPress vengono in tuo aiuto.

    WordPress è diventato così popolare in parte a causa della sua elevata personalizzazione. Il WordPress Core è caricato con diversi hook che consentono agli sviluppatori di modificare o migliorare la funzionalità predefinita. Inoltre, siamo autorizzati a includere ganci personalizzati nei nostri temi e plugin per aiutare altri sviluppatori a modificare facilmente il nostro codice in base alle proprie esigenze.

    Informazioni su Hook di WordPress

    Gli hook di WordPress funzionano in modo simile ai ganci reali, nel senso che puoi catturare il pesce che desideri nel punto giusto se li usi correttamente.

    Puoi rimuovere una funzione catturata (ad esempio puoi rimuovere la barra di amministrazione di WordPress per utenti di basso livello), puoi farlo lasciarlo intatto e valorizzalo con le tue funzionalità (ad es. puoi aggiungere più menu o aree widget a un tema) o puoi farlo sostituiscilo (ad esempio, puoi modificare il comportamento di una funzione principale).

    Esistono due diversi tipi di hook in WordPress: Azioni e filtri. In questo post daremo un'occhiata a come possiamo utilizzare i ganci di azione nella personalizzazione del tema.

    Come funzionano gli ami WordPress

    Per usare un linguaggio molto semplice, Azioni indica quello qualcosa è successo durante il ciclo di vita della pagina WordPress: alcune parti del sito sono state caricate, alcune opzioni o impostazioni sono state configurate, plugin o widget sono stati inizializzati, e così via.

    filtri sono diversi da Azioni nella loro natura Sono abituati a passare i dati attraverso, e modificare, gestire o intercettare prima di renderlo sullo schermo o di salvare i dati dell'utente nel database.

    A ogni punto di riferimento significativo del ciclo di vita della pagina WordPress c'è o azione o a filtro gancio a cui possiamo aggiungi il nostro codice personalizzato per modificare il comportamento predefinito ai nostri bisogni.

    Alcune azioni e filtri in esecuzione durante una richiesta dipendono da quale pagina è stata richiesta dall'agent user: ad esempio in un singolo post sono disponibili hook relativi ai singoli post, ma hook relativi ad altre parti del sito (ad esempio l'area admin) non sono.

    Trova ganci d'azione

    Il riferimento all'azione del codice WordPress offre una panoramica dettagliata delle azioni che attraversano diverse richieste. L'importante è che se vogliamo svolgere un compito dobbiamo farlo agganciare nel posto giusto, non prima o dopo, altrimenti l'azione non sarà completata.

    Quindi, per esempio, se vogliamo aggiungi il nostro codice di Google Analytics a un sito abbiamo bisogno di aggancia la nostra azione appena prima che il piè di pagina sia caricato.

    Se parliamo di personalizzazione del tema, i ganci di azione possono provenire da due luoghi diversi: da WordPress Core e il tema stesso. Ci sono temi che non hanno hook, ma altri forniscono agli sviluppatori alcuni o molti - è sempre la scelta dell'autore del tema. Il Twenty Fifteen Theme predefinito ha solo un hook di azione per la personalizzazione del footer sotto il nome di 'twentyfifteen_credits'.

    Se ti piace sfogliare il codice sorgente, puoi anche trovare facilmente i ganci di azione. I ganci di azione vengono aggiunti al codice con la funzione WordPress do_action ().

    Se si esegue una ricerca rapida dell'espressione "do_action" in un editor di codice più avanzato, come ho fatto in Eclipse di seguito, è possibile visualizzare un elenco degli spot in cui è possibile collegare le funzionalità personalizzate al nucleo. Ho cercato nel / Wp-includes / cartella, ma puoi anche eseguire una ricerca per / Wp-admin / cartella contenente gli hook di azione relativi al dashboard di WordPress (area di amministrazione).

    La cosa buona è che i nomi dei ganci di azione sono di solito piuttosto auto-esplicativi, ma non c'è di solito un bel commento all'interno del codice ciò può darti più conoscenza se il dato hook di azione è buono per il motivo per cui lo vuoi usare.

    Ad esempio il commento del codice prima che l'hook di azione "widgets_init" lo dica “spara dopo che tutti i widget WordPress predefiniti sono stati registrati”. Se si dà un'occhiata al codice prima di questo hook di azione, è possibile trovare l'inizializzazione di tutti i widget WP predefiniti prima di esso - in modo da poter essere sicuri che il commento non sia mentito e se si desidera registrare il proprio widget personalizzato, questo sarà il posto giusto.

    In molti casi il codice sorgente ci fornisce molte più informazioni rispetto al Codex, quindi può essere una buona idea imparare come navigare velocemente in esso.

    Aggiungi le tue azioni

    Quando vuoi aggiungere la tua azione, è necessario creare una funzione personalizzata e associare questa funzione a un hook di azione specifico utilizzando la funzione di WordPress add_action (). Le azioni personalizzate aggiunte con la funzione add_action () sono solitamente innescato sul posto quando il core chiama la funzione do_action () appropriata.

    Vediamo un semplice esempio.

    Come trovare il gancio di azione di cui hai bisogno

    Diciamo che vuoi aggiungere la tua favicon personalizzata al tuo sito. Innanzitutto, devi trovare il giusto hook di azione a cui puoi associare le tue funzionalità.

    Pensiamo. Se volessi aggiungere una favicon a una semplice pagina HTML dove la inseriresti? Certo, devi metterlo dentro il sezione del file HTML con il seguente markup:

      

    Quindi il gancio di azione di cui hai bisogno deve essere relativo al caricamento del sezione.

    (1) Aprire il riferimento all'azione e vedere cosa ha da offrire. Siamo fortunati, come se sfogliamo le azioni, possiamo trovarne solo uno, wp_head, che in base al suo nome ha la possibilità di essere correlato al caricamento del sezione.

    (2) Per essere sicuri, andiamo controlla la documentazione nel codice WordPress. Il Codice lo consiglia “usi questo hook facendo in modo che la tua funzione echo l'output sul browser”, così ora sembra essere perfetto per noi. Ma controlliamolo nel codice sorgente.

    (3) Poiché questo hook non è correlato all'area di amministrazione, sarà necessario eseguire la ricerca in / Wp-includes / cartella. Se cerchiamo la parola "wp-head" otterremo molti risultati poiché questa azione specifica viene usata molte volte da WP Core.

    Dobbiamo cercare il punto in cui viene definito, quindi cerca l'espressione do_action ('wp_head'. Si noti che non abbiamo completato le parentesi, poiché non possiamo essere sicuri ancora se questa azione ha parametri o meno.

    Eclipse restituisce solo un risultato che può essere trovato all'interno di /wp-includes/general-template.php file. Il commento prima della definizione dell'operazione d'azione lo dice “stampa script o dati nel tag head sul front-end”, quindi ora possiamo essere morti, certo wp_head è il gancio di azione di cui abbiamo bisogno.

    Controllo dei parametri

    Quando aggiungi le tue azioni devi anche essere sicuro che il gancio che vuoi usare prenda o meno i parametri. Puoi facilmente scoprirlo guardando la funzione do_action ().

    La sintassi della funzione do_action () è la seguente:

     do_action ('name_of_action' [, $ parameter1, $ parameter2, ...]) 

    È richiesto solo il nome dell'azione, i parametri sono facoltativi. Se trovi argomenti nella chiamata rilevante della funzione do_action (), è necessario includile nella dichiarazione della funzione personalizzata che crei.

    Se non ne trovi, la funzione personalizzata deve funzionare senza argomenti. Nella definizione do_action () del hook di azione wp_head, non ci sono parametri.

    Confrontiamolo con un hook di azione che accetta un parametro. L'hook di azione chiamato "wp_register_sidebar_widget" accetta un parametro che devi sempre passare alla funzione personalizzata che associ al gancio.

    Vediamo la differenza nella sintassi do_action () dei due casi:

     do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);

    Nel primo caso non ci sono parametri, quindi la funzione personalizzata utilizzerà la seguente sintassi:

     function my_function_without_parameters () ... 

    Nel secondo caso c'è un parametro che devi sempre passare come argomento nella dichiarazione della tua funzione personalizzata:

     function my_function_with_parameters ($ widget) ... 

    Come agganciare la tua funzione personalizzata

    Ora sappiamo tutto di cui abbiamo bisogno. Creiamo la nostra funzione personalizzata che mostrerà una favicon sul nostro sito.

    Innanzitutto, crea una nuova funzione senza argomenti, quindi associalla al hook di azione wp_head con l'aiuto della funzione WordPress di add_action ().

     function custom_add_favicon () echo '';  add_action ('wp_head', 'custom_add_favicon');

    Devi passa il nome del gancio di azione alla funzione add_action () come prima discussione, allora è necessario aggiungi il nome della tua funzione personalizzata.

    Questi sono i due parametri obbligatori di add_action (). Ha anche due parametri opzionali, priorità e argomenti accettati. Vediamo come usarli.

    Definisci le priorità

    Succede in molti casi che ci siano più azioni legate allo stesso gancio. Così quale sarà eseguito per primo? Questo è dove possiamo usare il $ parametro opzionale priorità della funzione add_action ().

    Aggiungiamo la priorità come numero intero positivo, il valore predefinito è 10. Se vogliamo che un'azione venga eseguita in anticipo, gli diamo un valore più basso, se vogliamo che venga eseguita in un secondo momento, gli diamo un valore più alto.

    Quindi se pensiamo che la favicon debba essere presente presto, possiamo migliorare la nostra precedente chiamata a add_action () nel modo seguente:

     add_action ('wp_head', 'custom_add_favicon', 5); 

    Si prega di notare che le priorità devono sempre essere imposta relativamente alle altre funzioni personalizzate che usa lo stesso hook di azione.

    Aggiungi il numero di argomenti accettati

    È necessario aggiungere il numero di argomenti accettati nel caso in cui si utilizzi un hook di azione che accetta parametri. Vediamo l'esempio che abbiamo usato prima.

    L'hook di azione 'wp_register_sidebar_widget' accetta un parametro, quindi quando associamo la nostra funzione personalizzata a questo hook, dobbiamo anche includerlo come argomento quando chiamiamo la funzione add_action ().

    Il nostro codice in questo caso sarà simile a questo:

     function my_sidebar_widget_function ($ widget) // Il tuo codice add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Nota che dobbiamo aggiungi anche la priorità (abbiamo scelto il valore predefinito 10 qui) per assicurarsi che WordPress sappia cosa significa ogni parametro. Se omettiamo la priorità, WordPress potrebbe supporre che 1 sia la priorità che non è vero, poiché indica il numero degli argomenti accettati.

    Conclusione

    Puoi fare molti esperimenti con i ganci di azione nella personalizzazione del tema. Ad esempio, puoi aggiungere i tuoi script personalizzati (JS) e stili (CSS) con l'hook di azione wp_enqueue_scripts o il tuo codice di Google Analytics con l'hook di azione wp_footer.

    Non solo puoi aggiungi le tue azioni, ma puoi anche rimuovi funzionalità complete dal core di WordPress con l'uso della funzione remove_action () che utilizza la stessa logica di add_action ().

    Se sei un autore di temi e vuoi creare un tema estensibile, può essere una buona idea aggiungi i tuoi ganci di azione personalizzati ai file modello appropriati con la funzione do_action ().

    Se vuoi farlo, pensa attentamente ai parametri che altri sviluppatori chi userà il tuo tema dovrà passare come argomenti quando vogliono collegare le loro funzionalità personalizzate.

    Durante la progettazione delle posizioni dei ganci di azione personalizzati del tema, non dimenticarlo non ha molto senso includere ganci a tema personalizzati negli stessi punti in cui lo stesso WordPress Core ha i propri ganci.