WordPress fornisce una raccolta di funzioni fondamentali chiamate funzioni collegabili. Come suggerisce il nome, possiamo collegare codice personalizzato a queste funzioni per sovrascrivere e migliorare la loro funzionalità in base alle nostre esigenze.
Il vero potere delle funzioni collegabili viene fornito con la possibilità di dichiarare funzioni personalizzate e renderle inseribili per altri sviluppatori e progettisti. È una tecnica ampiamente utilizzata per estendere le funzionalità e le funzionalità di WordPress Child Themes.
In questo articolo esploreremo il concetto di funzioni collegabili e il loro utilizzo.
Le funzioni inseribili nel core di WordPress si trovano nel pluggable.php file all'interno del wp-includes directory. È possibile trovare l'elenco completo delle funzioni collegabili in Funzioni inseribili nel codice WordPress. Innanzitutto ti mostrerò un elenco di funzioni collegabili che possono essere utilizzate in quasi tutti i siti Web WordPress.
wp_logout
- è usato per disconnettere l'utente dal sistema. È possibile eseguire attività come la rimozione di variabili di sessione personalizzate e la registrazione del tempo di sessione dell'utente nel database scrivendo un'abitudine wp_logout
funzione.wp_mail
- è la funzione di innesto più popolare di tutti. È possibile modificare questa funzione per utilizzare un modello di posta elettronica speciale per le proprie e-mail o qualsiasi altra proprietà correlata all'invio di e-mail.wp_new_user_notification
- può essere utilizzato per personalizzare il formato dell'email inviata subito dopo la registrazione di un nuovo utente nel sistema.auth_redirect
- viene utilizzato per reindirizzare un utente alla pagina di accesso se l'utente non ha già effettuato l'accesso. È possibile utilizzare questa funzione per visualizzare un messaggio all'utente che cita che l'utente deve essere autenticato per accedere alla pagina richiesta.wp_password_change_notification
- viene utilizzato per inviare un messaggio di posta elettronica quando la password viene modificata. È possibile aggiungere ulteriori informazioni a questa e-mail utilizzando questa funzione.Ora vediamo come possiamo inserire una funzione personalizzata in una delle funzioni sopra elencate. Userò wp_logout
Qui. Per prima cosa devi aprire il pluggable.php file e copia il contenuto del file wp_logout
funzione. Quindi crea una nuova funzione nel tuo file con lo stesso nome e includi il codice. Di seguito è riportata la funzione predefinita per wp_logout
:
if (! function_exists ('wp_logout')) / ** * Registra l'utente corrente. * * @since 2.5.0 * / function wp_logout () wp_clear_auth_cookie (); do_action ('wp_logout');
Ora diamo un'occhiata alla versione sovrascritta di wp_logout
funzione:
if (! function_exists ('wp_logout')) / ** * Registra l'utente corrente. * * @since 2.5.0 * / function wp_logout () remove_sessions (); // Custom Function Call wp_clear_auth_cookie (); do_action ('wp_logout'); function remove_sessions () // Rimuovi la sessione personalizzata e le informazioni sui cookie
Puoi vedere che ho modificato il wp_logout
funzione nel mio plugin e aggiunto un po 'di codice personalizzato. Questo è il processo che devi seguire per sovrascrivere una funzione collegabile.
La cosa importante nel codice sopra è il if (! function_exists ('wp_logout'))
linea definita in alto. Questa linea rende la tua funzione collegabile controllando se una funzione ha chiamato wp_logout
esiste e carica la funzione personalizzata. Altrimenti verrà caricata la funzione predefinita in pluggable.php.
Ci si potrebbe chiedere perché la funzione nel plugin venga chiamata al posto di quella predefinita anche quando entrambe le funzioni sono precedute dal prefisso function_exists ( 'wp_logout')
condizione. Ciò è dovuto all'ordine di esecuzione delle azioni di WordPress, che spiegherò in seguito.
function_exists
Controlla le funzioni personalizzate?Sì, è possibile. Tuttavia, se si omette il controllo, si avranno problemi nei seguenti due scenari.
Il rischio è che chiunque può ignorare la tua funzione a tua insaputa. Penso che dovresti sempre avere il controllo delle condizioni prima della funzione per evitare conflitti.
Ora sai come lavorare con le funzioni a innesto. Quindi vediamo dove possiamo posizionare le funzioni collegabili.
Ho visto molti sviluppatori tra cui funzioni inseribili nel functions.php file di un tema e non ottenere i risultati che si aspettano. È necessario avere una conoscenza adeguata dell'ordine di esecuzione delle azioni di WordPress prima di creare funzioni collegabili.
Puoi trovare la procedura completa di esecuzione sotto Riferimento azione nel codice WordPress. Estrarrò le azioni necessarie per le mie spiegazioni nella schermata sottostante.
L'immagine sopra mostra il generale processo di esecuzione dell'azione WordPress. Può variare in base al tipo di funzionalità utilizzata nel plug-in e queste azioni possono essere richiamate più volte durante una richiesta.
Dovresti vedere chiaramente che i plug-in "must use" vengono caricati per primi, seguiti da plugin attivi e funzioni collegabili. Finalmente il tema è caricato. Quindi, secondo il processo, possiamo formulare le seguenti conclusioni sulla creazione di funzioni collegabili.
Ora sai dove mettere le tue funzioni collegabili. La prossima domanda sarà cosa succede quando due o più plug-in sostituiscono la stessa funzione di base. È fuori dal tuo controllo dal momento che il primo plug-in attivato otterrà la preferenza rispetto ad altri. Quindi, se un altro plug-in viene attivato prima del plug-in, non verrà utilizzata la funzione plug-in.
È possibile visualizzare l'ordine del plug-in attivo utilizzando il valore di active_plugins
digitare la tabella delle opzioni di WordPress.
L'override delle funzioni innestabili di base ci consente di estendere la funzionalità predefinita e, quindi, molto utile in determinati scenari. Ma il vero valore delle funzioni collegabili arriva quando crei le tue funzioni collegabili. Queste funzioni non avranno alcuna relazione con le funzioni principali.
Generalmente nuove funzioni collegabili sono definite nei temi di WordPress per estenderne le funzionalità e consentire agli sviluppatori di temi figlio di ignorarle. Quindi vediamo come possiamo definire le funzioni pluggable personalizzate.
Per prima cosa dovrai creare la funzione con un controllo di esistenza come abbiamo fatto con le funzioni principali. Il seguente codice mostra una funzione di innesto campione per il tuo tema:
if (! function_exists ('change_header')) function change_header () // Codice per cambiare tema header
In precedenza ho menzionato di non creare funzioni inseribili nei file di temi a causa della dipendenza con le funzioni di innesto predefinite. In questo scenario stiamo creando nuove funzioni collegabili e quindi non ci saranno dipendenze. Quindi il processo di esecuzione dell'azione non avrà generalmente un effetto.
Creiamo temi figlio per consentire a sviluppatori e designer di estendere il design e le funzionalità del tema principale senza modificare il codice sorgente del tema originale. La forma base dell'estensione può essere fornita duplicando il CSS del tema principale all'interno del tema figlio e apportando le necessarie personalizzazioni.
Oltre agli stili CSS, i temi possono contenere funzioni utili come shortcode, modelli di pagina e filtri personalizzati per fornire elementi di design. Come sviluppatori di temi, dobbiamo fornire le massime capacità per gli sviluppatori di temi figlio. Possiamo utilizzare efficacemente le funzioni a innesto per consentire agli sviluppatori di temi figlio di modificare queste funzionalità.
Le funzioni inseribili nei temi vengono generalmente estese dagli sviluppatori di temi figlio. Ma gli sviluppatori di plugin possono anche estendere le funzioni collegabili all'interno dei loro plugin. Supponiamo di aver sovrascritto la funzione collegabile sia nel tema figlio che nel plugin. In tali casi le funzioni del plug-in avranno la precedenza sulle funzioni del tema figlio.Quindi assicurati di convertire le funzioni del tema esistenti in funzioni collegabili quando necessario per consentire la massima estensibilità.
Il concetto di funzioni pluggable di WordPress ti consente di estendere la funzionalità dei tuoi temi e plugin. In genere è preferibile sovrascrivere le funzioni core plug-in di WordPress nei plug-in e le proprie funzioni innestabili nei temi. Assicurati di avere una corretta comprensione della sequenza di esecuzione delle azioni di WordPress prima di creare funzioni collegabili per evitare conflitti.