Undvik att WP-plugin får bloggen att strejka

Uppdaterat 2017-08-08 / Uppstår problem rekommenderar jag att man först inaktiverar alla plugin. Fungerar sidan som den ska nu? Börja då med att aktivera ett plugin i taget, exempelvis Akismet för att det är WordPress eget plugin och bör vara OK. Fortsätt sedan med ett plugin i taget, kontrollera att sidan fungerar. När du kommer till det plugin som strular så inaktivera det, men fortsätt med dina övriga plugin för det kan ju hända att fler ställer till problem.

Det kan också vara så att vissa plugin kommer i konflikt med varandra. Tyvärr har många plugin dålig kodning både i PHP som HTML och CSS även om de finns på sidan WordPress Repository Plugins. Nu har man dock blivit mer strikta vad gäller godkännande av plugin och det tycker jag är bra!

Nedanstående artikel är fortfarande aktuell men går man direkt in i pluginet och ändrar så kommer ändringarna att försvinna med nästa uppdatering och då är vi tillbaka till ruta ett. Det finns en lösning och den heter child plugin. Precis som i ett child theme kan man göra ett child plugin och i denna lägga till sina ändringar oavsett om det rör PHP, HTML, eller CSS. En utförlig instruktion om hur man går tillväga kan du läsa hos WP Tavern samt i artikeln child-plugins-for-wordpress-child-theme-for-plugins/.


Hur många gånger händer det inte att man får deaktivera alla plugin för att till slut ändå upptäcka att ett visst plugin får din blogg att strejka för att pluginet inte längre fungerar? Skälet till detta brukar vara att upphovsmännen till våra plugin i många fall glömmer att lägga till en if-sats i php-koden. När bloggen sedan kallar på pluginet, och denna inte fungerar, så blir resultatet att delar, eller hela sidor, av bloggen inte kan laddas och visas. Bloggen strejkar och vi blir i allmänhet svettiga och ilskna för att vi inte riktigt vet vad detta beror på, till följd att vi måste deaktivera alla plugin och sedan återaktivera ett i taget i en felsökning. Inte bra och definitivt inte roligt! Vad som däremot är trevligt är att vi manuellt kan ordna till detta. Ännu trevligare är att det förvånansvärt nog inte alls är svårt.

Många använder två plugin som heter Related Posts eller Similar Post. Nuförtiden så kan vi ju installera våra plugin med ett enkelt klick, och det är bra. Men vi får inte glömma att granska hur koden ser ut som kallar på vårt plugin. Just de här pluginen kallas via följande kod:

<?php related_posts(); ?>
<?php similar_posts(); ?>

Som vi ser så finns det ingen if-sats i dessa koder vilket innebär att om pluginet av någon anledning slutar att fungera så kommer delar av bloggen att från och med den rad som dessa koder är placerade inte att synas. Allt innehåll under kommer inte att laddas in för att koden till pluginet inte har en if-sats.

Ett tips att kontrollera vilket plugin det är som inte fungerar är nämligen att öppna bloggen i webbläsaren och sedan visuellt granska sidan. De delar av innehållet som inte laddas in ligger omedelbart under det icke-fungerande pluginet. Använder du exempelvis ovanstående plugin och inte får en lista med ”liknande poster” utan en felkod, ja då ligger problemet med all säkerhet i just detta plugin. Samma regel gäller alla plugin.

Nu ska vi skriva om php-koden till våra plugin genom att lägga in en if-sats så vi slipper några obehagliga överraskningar.

<?php if(function_exists('related_posts')) { related_posts(); } ?>
<?php if(function_exists('similar_posts')) { similar_posts(); } ?>

Gör du så här med alla dina php-koder lär du undvika framtida problem att bloggen strejkar på grund av icke-fungerande plugin eftersom koden kontrollerar nu om pluginet fungerar innan den kallar på pluginet.

Author: Lena

Lena är en riktig web geek med sikte mot web standards. Hon har både fått utmärkelsen Årets WebQueen som att ha blivit omskriven för sina insatser på nätet. Hennes stora intresse är gränssnitt. Lena är gränssnitt- front end designer och har studerat design, gränssnitt, tillgänglighet, användbarhet och web standards på Blekinge Tekniska Högskola.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *