När jag byggde Travelmap, min första publika WordPress-plugin, la jag ner lite tid på att kolla upp best practices. Även om det går att hitta mycket information om hur man snabbt hackar ihop en plugin som fungerar hjälpligt så kan det vara lite svårare att hitta korrekt och aktuell information om hur de bästa sätten att lösa vanliga problem på. Här är i alla fall fem viktiga saker att tänka på:
Säkerhet
Det räcker inte med att kontrollera att användaren har rätt att utföra den begärda handlingen (current_user_can()
), kontrollera även att användaren har för avsikt att utföra den. Det är enkelt att göra med WordPress inbyggda system för Nonce.
Städa upp efter din plugin
Alla som har tittat i sin databas efter några års flitigt experimenterande med olika plugins har märkt att många plugins lämnar rester efter sig vid installationen. Enklaste sättet att städa efter din plugin är med en uninstall.php i pluginkatalogen.
Kod som är lätt att läsa och modifiera
Det här gäller ju inte bara WordPress, men kan vara bra att vara extra noga med för oss som sällan skriver kod för paketering och distribution: Följ den kodstandard som finns, ge funktionerna hjälpsamma namn och skriv tydliga kommentarer. Det kan också vara bra att dela upp stora metoder och bryta ut separat funktionalitet i egna klasser.
Lek väl med andra
Skriv inte över andras variabler. Paketera din plugin som en klass eller använd ett unikt prefix för alla variabelnamn (även för javascript). Se även till att din CSS inte förändrar element utanför din plugin. Att använda sig av några unika id:n eller klasser för att rama in dina regler kan vara en bra idé för att undvika att de hakar tag i saker du inte tänkt dig. Använd eventuella javascriptbibliotek i deras kompabilitetsläge för att undvika att ställa till det för de som använder flera bibliotek.
Ladda snålt
Ladda inte resurser som inte används. Villkora laddning av css och javascript. Det gäller framför allt plugins som bara laddas på några få sidor eller har tunga adminsidor.
Skicka inte med fler filen än vad som behövs. Använd WordPress befintliga stilmallar för att skapa ett stabilt admin-gränssnitt utan ytterligare filer. WordPress kommer med en rad javaskriptbibliotek med tillhörande plugins. Använd dessa i första hand. Jag föredrar också att ladda resurser från externa APIn om det är möjligt hellre än att skicka med en massa filer. Travelmap laddar exempelvis css och bildfiler till jQuery-UI-temat via Google Libraries API och kartmarkörerna laddas från Google Chart Tools. På det sättet blir det hundratals färre filer att skicka med.
Tänk även på att ladda css och javascript genom WordPress egna funktioner (enque_script()
och enque_style()
). På det sättet undviker du att ladda filer dubbelt om någon annan plugin redan skulle laddat filen i fråga.