Lav dit eget funktionsplugin

Lav dit eget funktionsplugin

Jeg har meget ofte – hvis ikke ved hver eneste website – brug for at lave enkelte tilpasninger til nogle funktioner. Det kan være i temaet, i selve WordPress eller i et funktionsplugin.

Meget tit kan jeg finde en kodestump, der ved hjælp af hooks og filtre kan omskrive en funktion til at gøre tingene på en anden måde. Nu har efterhånden jeg så meget styr på både WordPress, PHP og mine foretrukne plugins, at jeg bare selv skriver dem direkte.

Det er dem jeg kalder “snippets” (udklip), og som du kan finde nogle af  ved at søge på det.

temaets functions.phpMeget ofte får man det råd sammen med koden, at man bare skal placere den i temaets functions.php. Og det giver også i mange tilfælde god mening – i hvert fald hvis det er et undertema. Hvis det ikke er det, risikerer du nemlig at overskrive din egen ændring, når der installeres en ny version af temaet.

Men i de tilfælde, hvor det ikke har noget med temaet at gøre, og måske snarere er tilpasning af WordPress eller et plugin, så giver slet ingen mening at placere ændringerne i temaets funktionsfil. For vi ønsker jo at beholde den pågældende funktion også selvom vi skifter temaet ud.

Det er jo netop fidusen ved i et CMS at have skilt design og indhold ad.

Funktionsplugin

I stedet laver jeg mig et funktionsplugin. Med det mener jeg mit helt eget plugin, som indeholder de funktioner jeg ønsker at gøre brug af på lige netop dette website.

Det lyder måske meget svært, men det er i virkeligheden meget let at lave.

Inden vi gør det, skal du dog lige gøre dig nogen overvejelser, der har noget at gøre med det generelle retningslinjer, man bør følge som pluginudvikler: Du skal vælge et navn til dit plugin! Du kan læse mere om det i WordPress Codex.

Her er det vigtigt, at der ikke findes et andet plugin, der hedder det samme som dit – det kan blive noget forfærdeligt rod, hvis der lige pludselig er forsøg på at have flere mapper og plugins med samme navn.

Jeg plejer at navngive mine på den måde, at de altid starter med “eid”. Det er den korte form af firmanavnet og også mit domæne, så det giver jo god mening. Derefter kommer et sigende/beskrivende navn, og endelig websitets domæne, hvis det er udviklet til et bestemt sted.

Det vil sige, at hvis jeg fx laver et funktionsplugin til et websted, der hedder kagemanden.dk, så vil det kommer til at hedde Eid Functions Kagemanden – og mappen det ligger i vil hedde eid-functions-kagemanden

Vi starter med at lave en ny mappe i  /wp-content/plugins og kalder den eid-functions-kagemanden.

I denne mappe opretter du en ny php-fil, der hedder det samme som mappen, i eksemplet altså eid-functions-kagemanden.php.

Som minimum skal denne fil indeholde plugin’ets navn:

/*
Plugin Name: Functions for my website
*/

Det er det mindste man kan slippe afsted med, men gør dig selv og andre den tjeneste at uddybe det lidt. Det skulle jo gerne give mening for andre, hvad dette plugin reelt gør. En bedre version kunne se sådan ud:

 

Vil du læse mere om den enkelte punkter i denne header, så vil jeg anbefale Plugin Developer Handbook, som findes på WordPress.org. Den er god at blive klog på, når det gælder udvikling af plugins.

Herefter er der kun tilbage at gå til webstedet pluginhåndtering og aktivere dit plugin. Men… lav nu lige nogle tests udenfor det kørende websted, for du kan jo risikere at du får det hele splittet ad, hvis du har lavet en fejl!

Du kan dog altid bare gå ind og slette mappen med dit plugin igen, så er du tilbage ved udgangspunktet igen.

God arbejdslyst!

Her er eksempler på snippets, der kan indsættes i et funktionsplugin:

Skjul overflødige widgets

Opret ny indholdstype til produkter

WooCommerce tilpasning af faner

 

Har du andre gode eksempler på snippets?

Skriv en kommentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.