Hemsida » Wordpress » Så här använder du WordPress Action Hooks i temat anpassning

    Så här använder du WordPress Action Hooks i temat anpassning

    WordPress-barnteman ger ett relativt enkelt sätt att anpassa utseendet på ett tema. Om temaalternativen inte ger dig adekvata designval kan du bara lägga till en ny regel i barntemaets standard stilarkfil som heter style.css. Men vad händer när du vill ändra temaets funktionalitet? Det är ett av fallen när WordPress-åtgärder kommer till din hjälp.

    WordPress har blivit så populärt delvis på grund av dess höga anpassningsbarhet. WordPress Core är laddad med olika krokar som gör att utvecklare kan ändra eller förbättra standardfunktionen. Dessutom får vi inkludera anpassade krokar i våra teman och plugins till hjälpa andra utvecklare att enkelt anpassa vår kod till deras behov.

    Om WordPress Hooks

    WordPress-krokarna verkar lite lika verkliga krokar i den meningen att du kan fånga den fisk du vill ha på rätt plats om du använder dem ordentligt.

    Du kan ta bort en fångad funktion (till exempel kan du ta bort WordPress-administratörsfältet för användare med låg nivå), du kan lämna det intakt och förbättra den med din egen funktionalitet (till exempel kan du lägga till fler menyer eller widgetområden till ett tema), eller du kan åsidosätta det (t ex du kan ändra beteendet hos en kärnfunktion).

    Det finns två olika slags krokar i WordPress: åtgärder och filter. I det här inlägget tar vi en titt på hur vi kan använda åtgärdshooks i tematillpassning.

    Hur WordPress-krokar fungerar

    Att använda ett mycket enkelt språk, åtgärder Indikera att något har hänt under WordPress-livscykeln: vissa delar av webbplatsen har laddats, vissa alternativ eller inställningar har ställts in, plugins eller widgets har initierats och så vidare.

    filter skiljer sig från åtgärder i sin natur. De är vana vid skicka data igenom, och ändra, hantera eller snappa upp det innan det görs till skärmen eller sparar användardata i databasen.

    Vid varje signifikant milstolpe av WordPresss livscykel finns det antingen en verkan eller a filtrera krok som vi kan lägg till vår anpassade kod för att ändra standardbeteendet till våra behov.

    Vissa åtgärder och filter som körs under en förfrågan beror på vilken sida som användaragenten begärde: till exempel i en enskild postförfrågan finns krokar som är relaterade till enskilda inlägg, men krokar som är relaterade till andra delar av webbplatsen (t.ex. administratörsområdet) inte.

    Hitta Action Hooks

    Handlingsreferensen för WordPress Codex ger en detaljerad översikt över de åtgärder som går igenom olika förfrågningar. Det viktiga är att om vi vill utföra en uppgift behöver vi haka till rätt ställe, inte före eller efter det, annars kommer åtgärden inte att slutföras.

    Så till exempel om vi vill lägg till vår Google Analytics-kod på en webbplats vi måste Haka vår handling direkt innan fotfoten är laddad.

    Om vi ​​talar om tematillpassning kan åtgärdshooks komma från två olika ställen: från WordPress Core och själva temat. Det finns teman som inte har krokar alls, men andra ger utvecklare några eller många - det är alltid temaförfattarens val. Standard tjugo femton teman har bara en handlingskrok för anpassning av footer under namnet "twentyfifteen_credits".

    Om du gillar att bläddra i källkod kan du också hitta åtgärdshakar enkelt. Åtgärdshooks läggs till i koden med do_action () WordPress-funktionen.

    Om du kör en snabbsökning för uttrycket 'do_action' i en mer avancerad kodredigerare - som jag gjorde i Eclipse nedan - kan du se en lista över de platser där du kan koppla din anpassade funktionalitet till kärnan. Jag sökte i / Wp-includes / mapp, men du kan också söka efter / Wp-admin / mapp som innehåller handlingshakar relaterade till WordPress instrumentpanelen (admin area).

    Det rätta är att namnen på åtgärdshooks är vanligtvis ganska självförklarande, men det finns det vanligtvis en bra kommentar inom koden som kan ge dig mer kunskap om huruvida den givna handtagskroken är bra för att du vill använda den.

    Till exempel säger koden kommentaren före "widgets_init" action hook att det “bränder efter alla standard WordPress-widgets har registrerats”. Om du tittar på koden före den här åtgärdskroken kan du hitta alla standardinställningar för WP-widgets före den - så du kan vara säker på att kommentaren inte ligger och om du vill registrera din egen anpassade widget, Detta kommer att vara rätt plats.

    I många fall ger källkoden oss mycket mer information än Codex, så det kan vara en bra idé att lära sig att snabbt navigera i det.

    Lägg till dina egna åtgärder

    När du vill lägga till din egen åtgärd måste du skapa en anpassad funktion och binda denna funktion till en specifik handkrok genom att använda funktionen add_action () WordPress. Anpassade åtgärder som läggs till med funktionen add_action () är vanligtvis utlöst på platsen när kärnan kallar lämplig do_action () -funktion.

    Låt oss se ett enkelt exempel.

    Hur man hittar handlingshaken du behöver

    Låt oss säga att du vill lägga till ditt anpassade favikon till din webbplats. Först måste du hitta rätt åtgärdskrok du kan binda din egen funktionalitet till.

    Låt oss tänka efter. Om du vill lägga till en favicon på en vanlig HTML-sida vart skulle du lägga den? Självklart måste du placera den inuti avsnittet av HTML-filen med följande markup:

      

    Så handlingen krok du behöver måste vara relaterat till lastningen av sektion.

    (1) Öppna handlingsreferensen och se vad den har att erbjuda. Vi har tur, som om vi bläddra igenom åtgärderna, kan vi bara hitta en, wp_head, som baserat på dess namn har möjlighet att vara relaterad till lastningen av sektion.

    (2) För att vara säker, låt oss kolla dokumentationen i WordPress Codex. Codex rekommenderar det “du använder denna krok genom att ha din funktion echo-utmatning till webbläsaren”, så just nu verkar det vara perfekt för oss. Men låt oss kolla in källkoden.

    (3) Eftersom denna krok inte är relaterad till adminområdet kommer vi att behöva köra vår sökning i / Wp-includes / mapp. Om vi ​​söker ordet "wp-head" kommer vi att få många resultat eftersom denna specifika åtgärd används av WP Core många gånger.

    Vi måste leta efter platsen där den definieras, så sök efter uttrycket do_action ('wp_head'. Observera att vi inte slutför parentesen, eftersom vi inte kan vara säkra på om den här åtgärden har parametrar eller ej.

    Eclipse returnerar bara ett resultat som kan hittas inuti /wp-includes/general-template.php fil. Kommentaren innan handskak definitionen säger att det “skriver ut skript eller data i huvudetiketten på framsidan”, så nu kan vi vara döda på det wp_head är handlingen krok vi behöver.

    Kontrollera för parametrar

    När du lägger till egna åtgärder måste du också vara säker på om den krok du vill använda tar parametrar eller inte. Du kan enkelt hitta det här genom att titta på funktionen do_action ().

    Syntaxen för funktionen do_action () är följande:

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

    Endast åtgärdens namn krävs, parametrarna är frivilliga. Om du hittar argument i det relevanta samtalet av funktionen do_action () behöver du inkludera dem i deklarationen av den anpassade funktionen du skapar.

    Om du inte hittar någon, måste din anpassade funktion fungera utan argument. I do_action () definitionen av wp_head-åtgärdskroken finns inga parametrar.

    Låt oss jämföra det med en åtgärdskrok som tar en parameter. Åtgärdskroken som heter 'wp_register_sidebar_widget' tar en parameter som du alltid måste övergå till den anpassade funktionen du binder till kroken.

    Låt oss se skillnaden i do_action () syntaxen i de två fallen:

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

    I det första fallet finns ingen parameter, så den anpassade funktionen kommer att använda följande syntax:

     funktion my_function_without_parameters () ... 

    I det andra fallet finns det en parameter som du alltid måste skicka som ett argument till deklarationen av din anpassade funktion:

     funktion my_function_with_parameters ($ widget) ... 

    Hur hakar din anpassade funktion i

    Nu vet vi allt vi behöver. Låt oss skapa vår egen funktion som visar en favicon på vår webbplats.

    Först, skapa en ny funktion utan några argument, bind sedan den till wp_head action hook med hjälp av add_action () WordPress funktionen.

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

    Du behöver skicka namnet av åtgärdskroken till funktionen add_action () som ett argument först, då behöver du Lägg till namnet på din anpassade funktion.

    Dessa är de två nödvändiga parametrarna för add_action (). Den har också två valfria parametrar, prioritet och accepterade argument. Låt oss se hur du använder dessa.

    Definiera prioriteringar

    Det händer i många fall att det finns mer än en åtgärd som är bunden till samma krok. Så vilken kommer att utföras först? Det är här vi kan använda $ prioriterad valfri parameter av funktionen add_action ().

    Vi lägger till prioritet som ett positivt heltal, standardvärdet är 10. Om vi ​​vill ha en åtgärd som ska utföras tidigt, ger vi det ett lägre värde, om vi vill att det ska utföras senare ger vi det ett högre värde.

    Så om vi tycker att favicon måste vara där tidigt kan vi förbättra vårt tidigare add_action () -samtal på följande sätt:

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

    Observera att prioriteringarna alltid måste vara satt relativt de andra anpassade funktionerna som använder samma åtgärdskrok.

    Lägg till antalet accepterade argument

    Du måste lägga till antalet accepterade argument om du använder en åtgärdskrok som tar parametrar. Låt oss se det exempel vi använde tidigare.

    Åtgärdskroken "wp_register_sidebar_widget" tar en parameter, så när vi binder vår anpassade funktion till den här kroken måste vi också inkludera detta som ett argument när vi kallar funktionen add_action ().

    Vår kod i detta fall kommer att se ut så här:

     funktion my_sidebar_widget_function ($ widget) // Din kod add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Observera att vi måste Lägg även till prioritet (vi valde standard 10 här) för att se till att WordPress vet vad varje parameter betyder. Om vi ​​utelämna prioriteten kan WordPress anta att 1 är prioriterad vilket inte är sant, eftersom det anger antalet accepterade argument.

    Slutsats

    Du kan göra många experiment med åtgärdshooks i temaanpassning. Till exempel kan du lägga till dina anpassade skript (JS) och stilar (CSS) med handtagsknappen wp_enqueue_scripts eller din Google Analytics-kod med wp_footer-åtgärdskroken.

    Du kan inte bara lägg till dina egna handlingar, men du kan också ta bort fullständiga funktioner från WordPress-kärnan med hjälp av funktionen remove_action () som använder samma logik som add_action ().

    Om du är temaförfattare, och du vill göra ett utökat tema kan det vara en bra idé att lägg till egna skräddarsydda krokar till lämpliga mallfiler med funktionen do_action ().

    Om du vill göra det, Tänk noga på parametrar som andra utvecklare vem ska använda ditt tema måste gå som argument när de vill koppla in sina egna funktioner.

    Samtidigt som du utformar platserna för ditt temas anpassade åtgärder, glöm inte det har ingen mening att inkludera anpassade temakrok på samma ställen där WordPress Core själv har egna krokar.