WordPress hooks

Nu tar vi över WordPress!

Nej inte hela systemet, bara en liten del. Med en hook kopplar du på din egen kod i WordPress flöde utan att behöva ändra i WordPress kärna.

  • WordPress: ”Nu ska jag visa en sida”
  • Din plugin: ”Vänta! Innan du visar sidan vill jag kolla URL:en för att se om vi ska byta tema”

När används hooks

  • När en sida laddas (för att kanske ändra innehållet)
  • När någon loggar in (för att kanske spara data om inloggningen)
  • När ett inlägg sparas (för att kanske skicka ett mail)

I vårt fall med temaväxlaren behöver vi en hook som körs tidigt i sidladdningen, innan WordPress bestämmer vilket tema som ska användas. Vi vill kunna säga: ”Hej WordPress! Innan du väljer tema, kolla om det finns ett temanamn i URL:en!”

Två sorters hooks

Det finns två huvudtyper av hooks i WordPress:

  1. Actions (åtgärder)
  2. Filters (filter)

Vi börjar med Actions och återkommer till Filters senare. En action är en hook som körs vid specifika tillfällen i WordPress. Till exempel:

  • en sida laddas
  • ett inlägg sparas
  • en användare loggar in

Hur använder du en action

För att använda en action använder du funktionen add_action(). Den tar emot två parametrar:

  1. Funktionen som ska köras när hooken aktiveras
  2. Namnet på det vi vill ”kroka fast i”
function test_our_hook() {
    error_log('Vår hook kördes!');
}

add_action('init', 'test_our_hook');

WTF, init??

Nu dök det upp konstiga saker. Vad är init för nåt?

Init är en förkortning av initialisera, en funktion som körs vid varje sidladdning. När du klickar runt på en WordPressajt initialiseras WordPress vid varje ny sida du går till. Systemet kollar om det ska utföra något innan en sida visas.

Vår hook innebär att Init skriver en rad, Vår hook kördes!, till WordPress error log varje gång en sida laddas (WordPress initialiseras).

Källor

Vad är detta

Här beskriver jag bygget av en plugin till WordPress. Exemplet ger dig möjlighet att byta utseende på en webbsida.

  1. Hur du skapar en WordPress plugin
  2. WordPress hooks
  3. Fånga URLen!
  4. Identifiera sidtyp
  5. Finns det nåt tema i webbadressen?

Related Articles

Responses