WordPress Initialization Hooks Benefits and Common Mistakes

Bij het programmeren is initialisatie van gegevens van belang, omdat we hier de vereisten voor de toepassing instellen, zoals de kenmerken, de vereiste bestanden en gegevens, de verbinding met de database, enzovoort.

WordPress zelf heeft een goed gedefinieerde initialisatieprocedure. Via de levenscyclus van de pagina vuurt WordPress een aantal acties af waarvan we veel hebben behandeld in eerdere artikelen. Daartoe biedt het een reeks initialisatiehaken die van nature worden gebruikt om de toepassing te initialiseren voordat de primaire functionaliteit wordt uitgevoerd.

Als plug-in en themaontwikkelaars is het belangrijk om de use-cases te begrijpen en veelgemaakte fouten van deze initialisatiehaken om kwaliteitsapplicaties te bouwen.

In dit artikel gaan we kijken naar het belang van WordPress initialisatiehaken en hoe deze worden gebruikt in verschillende scenario's.


Inleiding tot initialisatiehaken

WordPress biedt een breed scala aan hooks die kunnen worden gebruikt in plug-in en thema-ontwikkeling.

In een standaard paginavraag worden alle actiehaken in een bepaalde volgorde uitgevoerd. In het bijzonder worden alle haken uitgevoerd nadat de kernapplicatie WordPress het laadproces heeft voltooid.

Initialisatiehaken worden dus vooral gebruikt om, u raadt het al, het proces in plug-ins en thema's te initialiseren. Laten we een kijkje nemen naar de beschikbare in het haken in WordPress, in volgorde van uitvoering:

  • in het wordt uitgevoerd nadat WordPress is geladen, maar voordat kopteksten zijn verzonden. Over het algemeen wordt dit gebruikt door plug-ins om hun proces te initialiseren.
  • widgets_init wordt gebruikt om zijbalk-widgets van de applicatie te registreren. De register_widgetfunctie wordt uitgevoerd binnen deze haak.
  • admin_init wordt uitgevoerd als de eerste actie, wanneer de gebruiker de admin-sectie van WordPress opent. Over het algemeen wordt het gebruikt voor het initialiseren van instellingen die specifiek zijn voor het Admin-gebied.
Afgezien van deze drie haken, wordt er nog een haak genoemd admin_bar_init, die wordt uitgevoerd nadat de beheerbalk is geïnitialiseerd. De WordPress Codex geeft geen verklaring voor deze haak, en niet veel plug-ins gebruiken deze haak.

U kunt ook het volledige uitvoeringsproces van WordPress-actiehaak in de Codex bekijken.

WordPress voert elke haak in een bepaalde volgorde uit (die u kunt zien in de Codex). Als zodanig is het belangrijk om de volgorde van voorkomen te bekijken bij het gebruik van elke actiehaak. Overweeg de volgende scenario's om de verschillen te identificeren.

Het definiëren admin_init Binnen in de in het Haak

Indien nodig kunnen we WordPress-hooks definiëren in andere hooks. In een typisch verzoek, in het haak loopt voor de admin_init haak. Laten we dus proberen iets uit te voeren door te plaatsen admin_init binnen in de in het haak:

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

Na het uitvoeren van deze code, zullen we de gewenste uitvoer krijgen met behulp van de echo uitspraak.

Het definiëren in het Binnen in de admin_init Haak

Laten we de code en uitvoer van dit scenario bekijken waarbij een eerdere haak is gedefinieerd binnen een haak die later in de volgorde van uitvoering komt.

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

Hier zullen we geen output krijgen - dit wordt verwacht - omdat het in het haak wordt eerder uitgevoerd admin_init hook, en dus is het niet beschikbaar na het definiëren van de admin_init haak.

Zoals je kunt zien, is het essentieel om de uitvoeringsprocedure van hooks voor het bouwen van succesvolle plug-ins te begrijpen. Volgorde van voorkomen is belangrijk voor alle hooks in WordPress.


Het verkennen van de in het en admin_init haken

Onder de init hooks, in het en admin_init is het ontdekken waard, omdat deze twee haken in veel plug-ins op grote schaal worden gebruikt. Het gebruik van andere initialisatiehaken is eenvoudig vergeleken met deze twee haken.

Als zodanig gaan we kijken naar de functionaliteit van in het en admin_init haken.

De in het haak wordt uitgevoerd in elke aanvraag voor beide de frontend van de WordPress-site en de backend.

De admin_init haak wordt uitgevoerd na de admin sectie voltooit zijn laadproces. Dus deze haak wordt ook uitgevoerd op elke beheerderpaginateaanvraag. Gebruikers moeten zijn aangemeld om te profiteren van deze haak.

Aangezien beide haken bij elk verzoek worden uitgevoerd, moeten we de functionaliteiten binnen de implementatie van deze haken overeenkomstig plannen, omdat dit de prestaties van de site aanzienlijk kan beïnvloeden..

Hoe te gebruiken in het haken

Over het algemeen zijn initialisatiehaken beschikbaar in de meeste bestaande WordPress-plug-ins en ze zijn essentieel voor het beheer van hun verwerking.

WordPress definieert niet wat we zouden moeten en wat we niet zouden moeten opnemen; daarom kunnen ontwikkelaars kleine fouten maken die op hun beurt kunnen resulteren in een enorme prestatieafname. In deze sectie gaan we bekijken hoe we beide effectief kunnen gebruiken in het en admin_init haken.

Laten we eens kijken naar de beste werkwijzen bij het gebruik van init hooks.

De in het haak

  • Aangepaste berichttypen registreren - WordPress beveelt het gebruik van de in het haak voor het registreren van nieuwe aangepaste berichttypen.
  • Initialiseren van uw plug-in configuraties en instellingen - Pluginconfiguraties en instellingen moeten in elke aanvraag worden gedefinieerd en daarom is het een goede gewoonte om ze in deze haak op te nemen.
  • Toegang verkrijgen tot door de gebruiker verzonden gegevens ($ _GET en $ _POST gebruiken) - We kunnen door de gebruiker verstrekte gegevens onderscheppen zonder enige actie, maar het wordt aanbevolen om de in het haak omdat het de uitvoering van elk verzoek garandeert.
  • Nieuwe herschrijfregels toevoegen - We kunnen nieuwe herschrijfregels definiëren met behulp van de in het haak, maar onthoud dat deze nieuwe regels pas van kracht worden als we de herschrijfregels doorspoelen.
  • Aangepaste acties toevoegen of verwijderen - Plug-ins bevatten veel aangepaste acties om de functionaliteit uit te breiden. Er zullen scenario's zijn waarbij we nieuwe aangepaste acties moeten toevoegen en bestaande moeten verwijderen. In dergelijke gevallen is het essentieel om die activiteiten binnenin te implementeren in het haak.
  • Laad plugin tekst domein - WordPress biedt meertalige ondersteuning en daarom mogen we het bestand laden dat de vertaalde tekenreeksen bevat. Dit moet ook in de in het haak.

De admin_init haak

  • Toegangscontrole - Het is essentieel om de rechten van ingelogde gebruikers te controleren voordat elke gebruiker toegang krijgt tot een specifieke set functies of functionaliteit. admin_init is de eerste actie die wordt uitgevoerd in het beheerdersgedeelte, zodat we deze kunnen gebruiken voor het beheren van toegangsbeheer.
  • Nieuwe instellingen toevoegen - We kunnen deze haak gebruiken om nieuwe instellingspagina's of instellingen toe te voegen aan het bestaande paneel met instellingen van WordPress.

Er zijn veel andere mogelijke implementaties met deze haken, maar deze functies hebben hun eigen haken en het is niet nodig om de initialisatiehaken te gebruiken.

Veelvoorkomende fouten bij het gebruik van initialisatiehaken

Vaak vinden we scenario's waarbij ontwikkelaars het gebruik van de initialisatiehaken verkeerd begrijpen. Onjuist gebruik van de haken kan leiden tot serieuze prestatieproblemen (evenals plug-ins van slechte kwaliteit).

Laten we de veelgemaakte fouten identificeren en hoe ze te vermijden:

  • Doorspoelen van herschrijfregels - Dit is een resource-intensieve operatie waarbij alle herschrijfregels worden doorgespoeld en herschikt om nieuw toe te voegen en onnodige regels te verwijderen. Veel ontwikkelaars spoelen de herschrijfregels binnenin in het acties en uiteindelijk leiden tot onnodige prestaties overhead in elk verzoek. We moeten een manier instellen om de herschrijfregels handmatig te spoelen met een knop of de regels voor niet-frequente activiteiten doorspoelen, zoals het opslaan van plugin-instellingen.
  • Toegang tot de database - Het is een must om toegang te krijgen tot de database voor het bieden van verschillende functies, maar het is belangrijk om onnodige databaseaanroepen binnen initialisatiehaken te voorkomen, aangezien deze bij elk verzoek worden uitgevoerd. Daarom is het ideaal om databasekoppelingen toe te wijzen in functiespecifieke hooks om te voorkomen dat de prestaties aanzienlijk worden onderbroken.
  • Uitvoeren van upgrade routines - Plug-ins moeten een upgrade-routine hebben om de functies voor nieuwe versies te upgraden. Over het algemeen gebruiken ontwikkelaars init hooks om de versies en instellingen van de plug-in te controleren voordat het upgradeproces wordt uitgevoerd. We kunnen de gebruikers de plug-in laten upgraden door een aangepast scherm te bieden in plaats van elke vraag automatisch te controleren.
  • Gebruik init hooks in plaats van functionaliteitspecifieke hooks - Dit is de meest voorkomende fout die door veel ontwikkelaars is gemaakt. Er is een breed scala aan haken in WordPress gericht op verschillende, unieke functionaliteit. Het is belangrijk om functiespecifieke hooks te gebruiken om conflicten te voorkomen en de code uitbreidbaar te maken. Haken zoals in het en admin_init kan worden gebruikt in plaats van specifieke haken, dus ontwikkelaars hebben de neiging om ze te gebruiken zonder de kennis van hun volledige effect. Enkele veel voorkomende scenario's waar ontwikkelaars gebruik van maken in het en admin_init haken in plaats van de aanbevolen haken zijn als volgt:
    • ADMIN_MENU - We kunnen menupagina's toevoegen via add_menu_page functie. Het wordt aanbevolen om te gebruiken ADMIN_MENU haak voor het maken van admin-pagina's. Maar veel ontwikkelaars gebruiken admin_init haak als het wordt uitgevoerd na ADMIN_MENU haak.
    • wp_enqueue_scripts - Aanbevolen manier om stijlen en scripts toe te voegen is om te gebruiken wp_enqueue_scripts haak. Maar veel ontwikkelaars gebruiken wp_enqueue_script binnen in de in het haak om scripts en stijlen te laden.

Er zijn een aantal vergelijkbare situaties waarin ontwikkelaars een gemeenschappelijke init hook gebruiken in plaats van een functionaliteitspecifieke hook en dit moet zoveel mogelijk worden voorkomen.


Doorsturen met initialisatiehaken

WordPress initialisatiehaken spelen een vitale rol bij plug-in en thema-ontwikkeling. Veel ontwikkelaars misbruiken de haken waardoor onnodige overheadkosten worden gecreëerd. In dit artikel bespraken we het juiste gebruik van deze haken, evenals veel voorkomende fouten en hoe deze te vermijden.

Nu kunnen we dezelfde techniek toepassen op plug-in specifieke aangepaste hooks. Veel geavanceerde plug-ins gebruiken hun eigen actiehaken om ze uitbreidbaar te maken. Voor dergelijke plug-ins kunnen we plugin-specifieke init hooks definiëren om ontwikkelaars te laten focussen op de initialisatietaken op vooraf gedefinieerde hooks in plaats van ze overal te gebruiken.

Deel gerust uw ervaringen met het juiste gebruik van init hooks en fouten bij het gebruik van initialisatiehaken. Ik kijk er naar uit om te zien wat je in de comments moet delen!