Hooks, Action & Filter i WordPress

En standard installation af WordPress er fyldt med en masse output du nødvendigvis ikke har behov for og nogle ting gør simpelthen bare dit fremtidige arbejde mere besværligt. WordPress benytter Hooks hvor man kan indlejre data i.
Disse hooks udnyttes både at WordPress selv, men også Plugins og Temaer. Via /wp-content/themes/dittema/functions.php fil kan man enten tilføje flere ting eller fjerne elementer man ikke skal bruge.
Functions.php er en del af dit tema og vi benytter denne for ikke at skulle rette i core filerne (derved bevare du dine rettelser, selvom du opdatere WP versionen)

Denne miniguide er blot for at give dig en ide om hvad man kan gøre - sørg for kun at benytte de ting du mener kan have gavn på din egen blog.

Jeg har en rimelig fast procedure med at fjerne en række ting fra bla. min wp_head(); hook vha. filter og action. Jeg fjerner både ting der irriterer mig, men også ting der kan reducere risikoen for hacking på min blog.
Generelt hvis du ser ting i dit HTML output du ikke ønsker skal være der og ikke umiddelbart kan finde i dine template filer, er det filter/actions du skal have fat i. (Samme gælder med plugins, hvis de indlejre noget HTML du ikke vil have, kan du med stor sandsynlighed fjerne det med en action via din functions.php.

Du kan her få lidt inspiration til de nogle af de link elementer og filtre jeg ofte ikke har behov for og jeg giver et eksempel af det output de hver laver inden de fjernes:
HUSK BACKUP af dine filer inden du laver rettelser direkte i dit tema.

Fjerner henvisning i <head> til kategori/tag feeds
Output eksempel:
<link rel="alternate" type="application/rss+xml" title="kategorifeed" href="/fisk/fiskehistorier/feed" />

remove_action( 'wp_head', 'feed_links_extra', 3);

Fjerner henvisninger til kommentar feeds
Output eksempel:
<link rel="alternate" type="application/rss+xml" title="Kommentarfeed" href="/min-forste-fisketur.html/feed" />

remove_action( 'wp_head', 'feed_links', 2 );

Fjerner Windows Live Writer manifest fil
Output eksempel:
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="/wp-includes/wlwmanifest.xml" />

remove_action( 'wp_head', 'wlwmanifest_link' );

Fjerner link til forrige indlæg fra header.
Output eksempel:
<link rel='prev' title='Kort - Kystfiskeri Sjælland' href='/kort-kystfiskeri-sjaelland.html' />

remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );

Fjerner link til første indlæg på bloggen fra header.
Output eksempel:
<link rel='start' title='Hej Verden!' href='/hej-verden.html' />

remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );

Fjerner link til næste indlæg fra header.
Output eksempel:
<link rel='next' title='Min gedde fra Furesøen' href='/min-gedde-fra-furesoen.html' />

remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );

Fjerner henvisning til din WP version fra header.
Output eksempel:
<meta name="generator" content="WordPress 2.9.1" />

remove_action( 'wp_head', 'wp_generator' );

Omskriver ikke dine specialtegn som ' og - i titlen

remove_filter('the_title', 'wptexturize');

Omskriver ikke dine specialtegn som ' og - i selve indlægget.

remove_filter('the_content', 'wptexturize');

Vil du benytte nogle af disse actions/filter kan du tilføje dem til din egen functions.php fil. Bare copy/paste den ind i slutningen af filen, lige før ?>

Lige så nemt som man kan fjerne ting fra sine hooks, kan man også tilføje ting. Men det er nok for meget at skrive om i denne lille guide.

Ressourcer:

Kommentarer

Skriv en kommentar »

  1. 1. januar 21st, 2010 klokken 19:56

    Fin gennemgang – vil dog lige sige at man skal hold tungen lige i munden – har brugt 20 min. på en gl. blog og har fumlet lidt for meget rundt. Hurra for backup 🙂

    Jeg er især glad for koden til at fjerne links til kommentardelen.

    StrategenNo Gravatar
  2. 2. januar 21st, 2010 klokken 20:10

    Hehe ja det er i den grad vigtigt at have backup – har lige for en god orden skyld smidt det ind med rødt i indlægget. 🙂

  3. 3. januar 22nd, 2010 klokken 00:45

    Tak for gennemgangen, Claus. Der er helt sikkert noget af det der, der skal implementeres, når jeg næste gang skal revidere lidt på bloggen.

  4. 4. januar 22nd, 2010 klokken 02:58

    @Frank: Ja det er altid rart at have lidt orden i sit output og kun have det med der er relevant for den aktuelle side.

  5. 5. januar 22nd, 2010 klokken 12:06

    Hej Claus

    Kan du ikke lave et Wordpres Plugin snart, med alle dine smarte rettelser til WordPress?

    Du kan jo kalde den “Claus Heinrich Optimizer”?

  6. 6. januar 22nd, 2010 klokken 18:20

    @Kevin: Er desværre et problem med tiden. Kunne nok brygge et godt filter/action plugin sammen hvor man derfra nemt kunne styre det, men ved ikke hvor jeg skulle finde tiden til at lave det 🙂

  7. 7. januar 22nd, 2010 klokken 18:36

    Ja, ideer er der rigeligt af, men det er lige tiden som det kniber med!

  8. 8. marts 12th, 2011 klokken 15:31

    Hej Claus, dejligt af vide du har tjek på wordpress, vi er også lige gået i gang med det. Glæder mig til af læse mere om smarte wordpress widgets :o)

  9. 9. juni 20th, 2011 klokken 07:40

    Hej Claus

    Jeg har lige fundet din blog i dag, men ser til min store sorg, at du ikke skriver på den længere. Hvorfor ikke? Den er rigtig god.

    Jeg vil ihvertfald gemme den og kigge på den løbende.

  10. 10. juni 20th, 2011 klokken 09:16

    Hej Deborah,
    Tak for din dejlige kommentar 🙂 Ja det er lidt skidt at jeg ikke har fået opdateret bloggen mere – irriterer mig også lidt. Det er lidt en kombination af tidsmangel og at jeg er ideforladt mht. hvad jeg skulle blogge om.

    Tror jeg vil gå lidt i tænkeboks igen og se om jeg kan finde noget godt og relevant at skrive om herinde – din kommentar giver da lidt blod på tanden til at komme i gang igen 🙂

  11. 11. juni 20th, 2011 klokken 09:41

    Det glæder mig da, og jeg håber da selvfølgelig, du får tid til at kigge forbi mig på et tidspunkt også. 🙂

  12. 12. juni 20th, 2011 klokken 10:01

    Kære Claus.

    Lækkert blog system du har lavet her :o)

    MVH Thomas

    FlytteNo Gravatar
  13. 13. juni 27th, 2011 klokken 22:00

    Hej claus
    som Deborah også skriver. syntes jeg det er øv der ikke er kommet nyt fra dig længe. jeg følger bloggen her en gang imellem og har fundet mange ting jeg selv kan bruge.

    håber der kommer mere fra dig

    klausNo Gravatar

Trackbacks

Efterlad en kommentar, et trackback til din egen blog eller tilmeld dig mit RSS feed for denne post. Trackback URL for denne post Kommentar feed for denne post

Skriv en kommentar

Hjemmeside?

Preview
Dansk blog Engelsk blog
Twitter Claus Heinrich