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.
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:
register_widget
functie wordt uitgevoerd binnen deze haak.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.
admin_init
Binnen in de in het
HaakIndien 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.
in het
Binnen in de admin_init
HaakLaten 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.
in het
en admin_init
hakenOnder 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..
in het
hakenOver 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.
in het
haakin het
haak voor het registreren van nieuwe aangepaste berichttypen.in het
haak omdat het de uitvoering van elk verzoek garandeert.in het
haak, maar onthoud dat deze nieuwe regels pas van kracht worden als we de herschrijfregels doorspoelen.in het
haak.in het
haak.admin_init
haakadmin_init
is de eerste actie die wordt uitgevoerd in het beheerdersgedeelte, zodat we deze kunnen gebruiken voor het beheren van toegangsbeheer.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.
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:
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.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: 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
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.
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!