Ganci di inizializzazione di WordPress vantaggi e errori comuni

Nella programmazione, l'inizializzazione dei dati è importante in quanto è dove impostiamo i prerequisiti per l'applicazione come i suoi attributi, i suoi file e dati richiesti, la sua connessione al database e così via.

WordPress stesso ha una procedura di inizializzazione ben definita. Attraverso il ciclo di vita della pagina, WordPress attiva una serie di azioni molte delle quali trattate negli articoli precedenti. A tal fine, fornisce una serie di hook di inizializzazione che vengono naturalmente utilizzati per inizializzare l'applicazione prima di eseguire la sua funzionalità primaria.

Come sviluppatori di plugin e temi, è importante capire i casi d'uso e errori comuni di questi hook di inizializzazione, al fine di creare applicazioni di qualità.

In questo articolo, daremo un'occhiata all'importanza degli hook di inizializzazione di WordPress e al modo in cui vengono utilizzati in vari scenari.


Introduzione ai ganci di inizializzazione

WordPress offre una vasta gamma di hook che possono essere utilizzati nello sviluppo di plugin e temi.

In una tipica richiesta di pagina, tutti i hook di azione vengono eseguiti in un determinato ordine. In particolare, tutti gli hook vengono eseguiti dopo che l'applicazione core WordPress completa il processo di caricamento.

Quindi i ganci di inizializzazione sono principalmente utilizzati, avete indovinato, inizializzare il processo in plugin e temi. Diamo un'occhiata al disponibile dentro ganci in WordPress, nell'ordine della loro esecuzione:

  • dentro viene eseguito dopo che WordPress ha terminato il caricamento ma prima che vengano inviate le intestazioni. Generalmente, questo usato dai plugin per inizializzare il loro processo.
  • widgets_init è usato per registrare i widget della barra laterale dell'applicazione. Il register_widgetla funzione viene eseguita all'interno di questo hook.
  • admin_init viene eseguito come prima azione, quando l'utente accede alla sezione admin di WordPress. Generalmente, viene utilizzato per inizializzare le impostazioni specifiche per l'area di amministrazione.
Oltre a questi tre ganci, c'è un altro gancio chiamato admin_bar_init, che viene eseguito dopo l'inizializzazione della barra di amministrazione. Il codice WordPress non fornisce una spiegazione di questo hook e non molti plugin utilizzano questo hook.

È inoltre possibile rivedere l'intero processo di esecuzione degli hook di azione di WordPress nel Codex.

WordPress esegue ogni hook in un certo ordine (che puoi vedere nel Codex). Pertanto, è importante considerare l'ordine di occorrenza nell'utilizzo di ciascun hook di azione. Considerare i seguenti scenari per identificare le differenze.

Definizione admin_init Dentro il dentro gancio

Se necessario, possiamo definire gli hook di WordPress all'interno di altri hook. In una tipica richiesta, dentro ganci corre prima del admin_init gancio. Quindi proviamo a produrre qualcosa posizionando admin_init dentro il dentro gancio:

 add_action ('init', 'test_init'); function test_init () add_action ('admin_init', 'test_admin_init');  function test_admin_init () echo "Admin Init Inside Init"; 

Dopo aver eseguito questo codice, otterremo l'output desiderato usando il eco dichiarazione.

Definizione dentro Dentro il admin_init gancio

Vediamo il codice e l'output di questo scenario in cui un hook precedente viene definito all'interno di un hook che viene in seguito nell'ordine di esecuzione.

 add_action ('admin_init', 'test_admin_init'); function test_admin_init () add_action ('init', 'test_init');  function test_init () echo "Init Inside Admin Init"; 

Qui, non otterremo alcun output - questo è previsto - perché il dentro il gancio viene eseguito prima admin_init gancio, e quindi non è disponibile dopo aver definito il admin_init gancio.

Come puoi vedere, è fondamentale comprendere la procedura di esecuzione degli hook per creare plugin di successo. L'ordine di occorrenza è importante per tutti gli hook di WordPress.


Esplorando il dentro e admin_init ganci

Tra i ganci di init, dentro e admin_init vale la pena esplorare poiché questi due ganci sono ampiamente utilizzati in molti plugin. L'utilizzo di altri hook di inizializzazione è semplice rispetto a questi due hook.

In quanto tale, esamineremo la funzionalità di dentro e admin_init ganci.

Il dentro gancio viene eseguito in ogni richiesta di tutti e due il frontend del sito WordPress e il back-end.

Il admin_init il gancio è eseguito dopo la sezione di amministrazione completa il processo di caricamento. Quindi questo hook si esegue anche su ogni richiesta della pagina admin. Gli utenti devono essere loggati per approfittare di questo hook.

Poiché entrambi questi hook vengono eseguiti su ogni singola richiesta, dobbiamo pianificare le funzionalità all'interno dell'implementazione di questi hook in modo che possano influire notevolmente sulle prestazioni del sito.

Come usare dentro ganci

Generalmente, gli hook di inizializzazione sono disponibili nella maggior parte dei plugin WordPress esistenti e sono essenziali per la gestione del loro processamento.

WordPress non definisce ciò che dovremmo e ciò che non dovremmo includere; pertanto, gli sviluppatori possono commettere errori minori che, a loro volta, possono comportare un enorme calo delle prestazioni. In questa sezione, vedremo come possiamo utilizzare entrambi in modo efficace dentro e admin_init ganci.

Diamo un'occhiata alle migliori pratiche nell'utilizzo degli hook di init.

Il dentro gancio

  • Registrazione di tipi di post personalizzati - WordPress raccomanda l'uso di dentro gancio per la registrazione di nuovi tipi di messaggi personalizzati.
  • Inizializzazione delle configurazioni e impostazioni del plugin - Le configurazioni e le impostazioni del plugin devono essere definite in ogni singola richiesta e quindi è una buona pratica includerle all'interno di questo hook.
  • Accesso ai dati inviati dall'utente (utilizzando $ _GET e $ _POST) - Possiamo intercettare i dati inviati dall'utente senza alcuna azione, ma si consiglia di utilizzare il dentro gancio in quanto garantisce l'esecuzione in ogni richiesta.
  • Aggiunta di nuove regole di riscrittura - Possiamo definire nuove regole di riscrittura usando il dentro agganciare, ma tieni presente che queste nuove regole diventeranno effettive solo dopo aver eliminato le regole di riscrittura.
  • Aggiungi o rimuovi azioni personalizzate - I plugin contengono molte azioni personalizzate per estendere la funzionalità. Ci saranno scenari in cui dobbiamo aggiungere nuove azioni personalizzate e rimuovere quelle esistenti. In tali occasioni, è essenziale implementare tali attività all'interno dentro gancio.
  • Carica il dominio del testo del plug-in - WordPress offre supporto multilingua e quindi è consentito caricare il file contenente le stringhe tradotte. Questo dovrebbe anche essere inserito nel dentro gancio.

Il admin_init gancio

  • Controllo di accesso - È essenziale verificare le autorizzazioni degli utenti registrati prima di consentire a ciascun utente di accedere a un insieme specifico di funzionalità o funzionalità. admin_init è la prima azione da eseguire nell'area di amministrazione in modo che possiamo usarla per gestire il controllo degli accessi.
  • Aggiunta di nuove impostazioni - Possiamo utilizzare questo hook per aggiungere nuove impostazioni o impostazioni nel pannello delle impostazioni di WordPress esistente.

Esistono molte altre possibili implementazioni con questi hook, ma queste funzionalità hanno i propri hook e non è necessario utilizzare i ganci di inizializzazione.

Errori comuni di utilizzo dei ganci di inizializzazione

Spesso, troviamo scenari in cui gli sviluppatori fraintendono l'uso dei ganci di inizializzazione. L'uso improprio di tali ganci può portare a seri problemi di prestazioni (così come i plugin di bassa qualità).

Identifichiamo gli errori comuni e come evitarli:

  • Risolvete le regole di riscrittura - Si tratta di un'operazione a uso intensivo di risorse in cui tutte le regole di riscrittura vengono svuotate e riorganizzate per aggiungere nuove e rimuovere regole non necessarie. Molti sviluppatori scaricano le regole di riscrittura all'interno dentro azioni e finiscono per creare inutili sovraccarichi delle prestazioni in ogni richiesta. Dovremmo impostare un modo per svuotare manualmente le regole di riscrittura usando un pulsante o svuotare le regole su attività poco frequenti come il salvataggio delle impostazioni del plugin.
  • Accesso al database - È necessario accedere al database per fornire varie funzionalità, ma è importante evitare chiamate di database non necessarie all'interno dei ganci di inizializzazione quando vengono eseguite su ogni richiesta. A tal fine, è ideale per assegnare hook di database in hook specifici delle funzionalità per evitare un sovraccarico delle prestazioni.
  • Esecuzione di routine di aggiornamento - I plugin devono avere una routine di aggiornamento per aggiornare le sue funzionalità per le nuove versioni. Generalmente, gli sviluppatori usano i hook di init per controllare le versioni e le impostazioni dei plug-in prima di eseguire il processo di aggiornamento. Possiamo consentire agli utenti di aggiornare il plug-in fornendo uno schermo personalizzato invece di controllare automaticamente ogni singola richiesta.
  • Utilizzo di hook di init invece di hook specifici di funzionalità - Questo è l'errore più comune fatto da molti sviluppatori. Ci sono una vasta gamma di ami in WordPress per il targeting di diverse funzionalità uniche. È importante utilizzare ganci specifici delle funzionalità per evitare conflitti e rendere il codice estensibile. Ganci come dentro e admin_init può essere usato al posto di hook specifici in modo che gli sviluppatori tendono a usarli senza avere la consapevolezza del loro pieno effetto. Alcuni degli scenari comuni in cui gli sviluppatori utilizzano dentro e admin_init i ganci invece dei ganci consigliati sono i seguenti:
    • admin_menu - Possiamo aggiungere pagine di menu usando add_menu_page funzione. Si consiglia di usare admin_menu gancio per la creazione di pagine di amministrazione. Ma molti sviluppatori usano admin_init gancio come viene eseguito dopo admin_menu gancio.
    • wp_enqueue_scripts - Il modo consigliato di aggiungere stili e script è da utilizzare wp_enqueue_scripts gancio. Ma molti sviluppatori usano wp_enqueue_script dentro il dentro gancio per caricare script e stili.

Ci sono un numero di situazioni simili in cui gli sviluppatori usano il hook init comune invece del hook specifico della funzionalità e dovrebbero essere prevenuti quando possibile.


Andare avanti con i ganci di inizializzazione

Gli hook di inizializzazione di WordPress svolgono un ruolo vitale nello sviluppo di plugin e temi. Molti sviluppatori utilizzano in modo improprio gli hook creando un inutile sovraccarico delle prestazioni. In questo articolo, abbiamo discusso l'uso corretto di questi ganci, nonché gli errori comuni e come evitarli.

Ora possiamo applicare la stessa tecnica per collegare specifici hook personalizzati. Molti plugin avanzati utilizzano i propri hook di azione per renderli estendibili. Per tali plug-in, possiamo definire ganci init specifici del plugin per consentire agli sviluppatori di concentrarsi sulle attività di inizializzazione su hook predefiniti, invece di utilizzarli ovunque.

Sentiti libero di condividere le tue esperienze sull'uso corretto degli hook di init e sugli errori nell'utilizzo degli hook di inizializzazione. Non vedo l'ora di vedere cosa devi condividere nei commenti!