No testing like live testing!

Gav mig igår i kast med att skriva min första plugin till WordPress (med varierat resultat…)

Att jag skriver en egen istället för att leta upp någon som redan finns (det finns plugins för i stort sett allt) är på grund av, eller rättare sagt tack vare, att jag har som inlämningsuppgift i en kurs jag läser att skapa just en WP-plugin. (Visst har jag det bra? ;))

Tanken var initialt att med add_filterthe_content köra en preg_replace på ord i inlägg som föregicks av @ eller # på samma sätt som man gör på Twitter för att nämna en annan användare respektive hashtagga ett ord, ta dessa ord och automatisk skriva om dem till länkar.

Detta funkade i teorin (och lite då och då i praktiken…) men som jag snart upptäckte fanns det några problem. Framförallt blev det lite som att skjuta mygg med kanon; ALL text med @ och # länkades ju, oavsett om den var avsedd som en Twitter-omnämning eller ej. Så tex om det fanns inline css (brrr…) i texten med hexadecimala färgkoder (#000 osv) så trodde pluginen att detta var en hashtag som skulle skrivas om. Inte bra. Jag stötte även på problem med att använda blanksteg som avgränsare för strängarna som skulle hittas med regex; det var en allt annat än felsäker metod lärde jag mig den hårda vägen…

Min lösning blev att tänka om en aning kring hur pluginen hittar det den ska skriva om. Istället för att bara skriva @namn får man skriva [@namn]. Minst lika enkelt, men betydligt mer felsäkert och man bör undvika iallafall de flesta problem som uppstod med den första versionen.

Transperent som ugnsfolie plastfolie som jag är så trummade jag såklart på stora trumman på Twitter 5 minuter efter att jag hade zippat ihop min plugin och trots dråpligheten i att inse att den inte funkade sådär jädra bra är jag glad att jag gjorde det. Att andra ”såg på” gjorde att jag gav mig tusan på att hitta en lösning och fundera på vad som blev fel i koden och varför. Fick bl.a. en välbehövlig crash course i regular expressions;)

  1. Josef Boberg skriver:

    Jag är WP-användare sedan ca 5 år tillbaka – men fattar nada av vad Du beskriver i inlägget ovan.

Lämna en kommentar

Din e-post publiceras aldrig på den här webbsidan.
Obligatoriska fält är markerade med en *

*