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?

Hur du skapar en WordPress plugin

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

En poäng med att publicera information och funktionalitet i en plugin (ett tillägg), istället för direkt på webbsidan, är att den fungerar i alla teman. Även då du byter tema finns informationen där.

Du kan till exempel se licensinformation en bit ner på denna webbsida, om hur du kan återanvända information på sajten. Licensinformationen har jag lagt i ett tillägg så att den följer med även när temat byts ut.

Varför berätta om detta

En poäng med att beskriva arbetet med tillägget öppet är att det ger dig möjlighet att hjälpa mig 😉

Jag vet inte riktigt vad jag håller på med, är en ganska oerfaren WordPress- utvecklare. Så när du inte fattar eller hittar problem kan du lösa dem, dela med dig av lösningen och hjälpa mig förstå. Skriv en kommentar eller ett eget inlägg och länka hit.

Ett tillägg byggs med ett textdokument

Skriv text i ett textdokument och placera det på rätt plats så kommer WordPress förstå att det handlar om ett tillägg.

Var

Placera ditt textdokument, ditt tillägg, i mappen wp-content/plugins i en egen mapp, i mitt fall Temaskiftaren.

wp-content/plugins/temaskiftare

Textdokumentet heter temaskiftare.php

Header

Inled texten i tillägget med det som kallas Header, en beskrivning.

/*
Plugin Name: Temaskiftaren
Description: Byt WordPress-tema via URL
Version: 0.1
Author: Rikard Linde
*/

Säkerhetskontroll

Med Temaskiftaren kommer du kunna byta utseende på webbsidor genom att ändra webbadress.

För att användaren ska kunna använda tillägget som tänkt men inte påverka resten av WordPress inleder vi tillägget med en säkerhetskontroll.

if (!defined('ABSPATH')) {
    exit;
}

ABSPATH är en säkerhetskontroll som förhindrar att någon kör tillägget direkt via webben.

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?