WordPress Hooks – 4 eksempler og alt du behøver at vide!

Niveauet i denne guide er for begyndere
wordpress hooks

Del dette med dine WordPress venner

Del på facebook
Del på linkedin
Del på twitter
Del på email

Et spørgsmål mange WordPress begyndere ofte stiller i fora er: Hvad er WordPress Hooks og hvad kan de bruges til?

Jo, ser du – WordPress er et CMS der virkelig har potentiale for tilpasninger. Det lader brugerne lave ændringer, som passer helt specifikt til netop dem. Nogle brugere tilpasser deres hjemmeside, kun ved brug af den indbyggede tilpasser. Andre vælger at tilføje deres egne tilpassede funktionalitet ved brug af WordPress Hooks.

I denne guide vil jeg forklare hvad hooks er i WordPress samt hvordan de kan bruges til at modificere eller tilføje specifik funktionalitet i WordPress.

Hvad er WordPress Hooks?

Hvis man læser WordPress Codexet lærer man, at hooks fungerer som en bro mellem WordPRess teamer- og plugins. Det er helt kort fortalt den måde de kommunikerer med WordPress kernen. Funktionaliteten i hooks tillader derfor en udvikler at forbinde deres egen kode med standard funktionerne der allerede er indbygget i WordPress kernen.

Sagt med andre ord er hooks tilpassede PHP funktioner der kan bruges eller “hookes” ind i den standard indbyggede funktionalitet i WordPress uden, det vil påvirke de eksisterende filer. Hooks tillader derfor WordPress at arbejde sammen med tilpasser kode, der måtte være i plugins og functions.php filen.

Der findes to typer hooks:

Action Hooks

Action hooks bliver kørt på et bestemt tidspunkt for at udføre en bestemt opgave. Det kan være noget som at vise data eller tilføje data til en database. Action hooks returnerer ikke en værdi, de udfører kun bestemte opgaver når de bliver kaldt.

Et eksempel kunne være: create_category funktionen, der kører hver gang du opretter en ny kategori. Denne funktion returnerer ikke noget.

Filter Hooks

Filter hooks er omvendte af action hooks. De lader dig ændre data når WordPress bliver eksekveret. Funktioner hooket ind i filtre accepterer variabler og returnerer også en værdi. Nogle filtre accepterer også mere end et argument.

Et eksempel kunne være: add_filter(‘den_lille’, ‘strrev’); accepterer en streng som argument og returnerer det modsatte af den streng.

Filtre bruges altså til at håndtere en specifik opgave og de kan modificere data samt altid returnere noget.

Hvordan bruges WordPress Hooks?

Nu hvor du har fået en meget basal intro til de grundlæggende koncepter ved WordPress hooks. Synes jeg vi skal tage skridtet videre og se på hvordan man anvender både Action- og Filter hooks 🙂

Action Hook eksempler

Der er mere end 200 tilgængelige hooks, så jeg har ikke tænkt mig at gå over dem alle i denne artikel. Dog vil jeg stadig give dig lidt eksempler så du kan komme i gang. Til at starte med vil jeg vise dig et simpelt eksempel og derefter forklare hvad jeg har gjort.

Eksempel 1 – tilføj en tilpasset menu i kontrolpanelet

function tilpasset_menu() {
 add_menu_page( 'tilpasset menu titel', 'tilpasset menu', 'manage_options', 'testplugin/testplugin-admin.php', '', 'dashicons-admin-site', 6 );
}
add_action( 'admin_menu', 'tilpasset_menu' );

Lad os tage et kig på koden linje for linje, så du er helt med på hvad der sker.

  1. I den første linje kode, giver vi funktionen et navn.
  2. Linje to kalder en anden funktion med et par argumenter inde i sig.
  3. Til sidst har jeg vedhæftet min tilpassede funktion med et action hook i ‘admin_menu’ – kort fortalt betyder det at min funktion bliver kørt hver gang admin menuen bliver genereret.

Eksempel 2 – Tilføj tilpasset tekst efter headeren

// Tilføj tilpasset tekst efter headeren
function tilfoej_tilpasset_tekst() {
  if ( !is_front_page() )
    return;
  // Udskriv dit HTML kode
  echo "<div>Gå ikke glip af din specielle rabat på 20%</div>";
}
add_action( '__after_header' , 'tilfoej_tilpasset_tekst' );

I koden ovenfor tilføjer jeg en ny funktion kaldet tilfoej_tilpasset_tekst. Hvis siden brugeren står på ikke er forsiden, vil denne funktion ikke vise den tilpassede tekst. Det kan man se på den if løkke jeg har lagt ind med !is_front_page(). Udråbstegnet (!) står for IKKE / NOT, hvilket oversat vil give: “Hvis det ikke er forsiden”, skal du returnere uden at gøre yderligere.

I slutningen af scriptet, hvis det altså er forsiden. Har jeg tilføjet en linje HTML kode som er den der vil fremgå i toppen af siden. Måden hvorpå jeg kan få det til at være toppen af siden, er ved at gøre bruge af action hooket ‘__after_header‘.

Man kan lave mange forskellige Action Hooks og det er blot at prøve sig frem, indtil man får en forståelse af, hvordan det egentlig fungerer.

Filter Hook eksempler

I modsætning til Action Hooks, accepterer filtre argumenter og returnerer også en værdi. Nedenfor har jeg lavet et par eksempler, så du kan få en ide om hvordan de bruges.

Eksempel 1 – Ændring af længden på uddrag

function uddrag_laengde_eksempel( $words ) {
 return 35;
}
add_filter( 'excerpt_length', 'uddrag_laengde_eksempel' );

I koden ovenfor, benytter jeg mig af et allerede eksisterende WordPress filter ‘excerpt_length‘ og hook min egen tilpassede kode ind i det. Resultatet er at jeg returnerer en numerisk værdi (integer) på 35, som nu er den nye længde på uddrag når du står på siden med artikler.

Eksempel 2 – Skift titel

// Skift titel
function skift_titel($title) {
return 'Hooked: '.$title;
}
add_filter( 'the_title', 'skift_titel' );

I dette simple eksempel, har jeg defineret en ny tilpasset funktion kaldet ‘skift_titel‘ som skiftet titlen på indlæg. Bagefter har jeg hooket funktionen ind i filteret ‘the_title‘.

Afrunding

WordPress hooks er ekstremt nyttige, når man gerne vil tilføje tilpasset funktionalitet til kernefunktionerne i WordPress. I denne guide, har du set hvordan Action- og Filter Hooks er forskellige samt hvordan de kan bruges i forskellige scenarier i en WordPress installation.

Hvis du har nogle spørgsmål, eller er forvirret over konceptet er du meget velkommen til at skrive i kommentarerne, så vender jeg tilbage til dig.

Was this helpful?

Gå ikke glip af vores tips og tricks!

Få automatisk de seneste tips om WordPress i din indbakke.

Automatisk vedligeholdelse

Lad os klare det kedelige og få vedligeholdt din WordPress hjemmeside fra kun 299,- pr. måned.