Det er mange faktorer som påvirker ytelsen på WordPress-siden din, og et av triksene som "eksperter" ofte vil fortelle deg å gjøre, er å unngå plugins. De vil fortelle deg at det er bedre å plassere funksjonalitet inne i temaet ditt, i stedet for å aktivere et plugin. Er dette sant?
Når det gjelder ytelsen til ditt WordPress-nettsted, er det mange faktorer som påvirker de samlede resultatene. Disse faktorene inkluderer hvor godt temaet ditt er skrevet, antall bilder og andre ressurser som må lastes, hvor godt nettstedet ditt er hurtigbufret, kvaliteten på de aktiverte plugins og mange flere. To faktorer, som imidlertid har null innvirkning på ytelsesnivået på nettstedet ditt, er antall plugins (ja, jeg er 100% seriøs) og om det finnes deler av funksjonalitet som et plugin eller en del av temaet ditt.
Hvis du gjør et raskt Google-søk etter "hvordan legge til et kontaktskjema for WordPress", vil du sannsynligvis merke en tøff trend når det kommer til opplæringstitler. De fleste opplæringsprogrammene vil inneholde noe i tråd med"... uten et plugin". Denne trenden, som eksisterer for dusinvis av opplæringsemner, bringer inn ideen om at plugins må være dårlige og muligens at de har skadet nettstedets ytelse. Å ha ordene"uten et plugin"så vanlig i opplæringstitler, samt foruminnlegg, har mange kommet til å tro at det er bedre, spesielt for ytelse, å inkludere deler av funksjonalitet inne i temaer (enten din egen eller en du har kjøpt) i stedet for å stole på et plugin for å gi det.
Det første svaret jeg har til denne vanlige troen er at den er helt ubegrunnet, og faktisk helt feil. Det er flere aspekter av grunnen til at denne troen er feil, og jeg vil gå gjennom dem punkt for punkt. Jeg vil også kort berøre troen på at færre plugins er bedre, hvilket også er (vanligvis) helt feil.
Tanken bak denne troen er at plugins ofte er kilden til problemer på nettstedet ditt, enten fordi de er dårlig skrevet eller de er i konflikt med noe i temaet ditt. Hvis plugins ofte er dårlige, så er det fornuftig at det er bedre å plassere funksjonalitet (som kontaktskjemaer) inne i temaet, til høyre?
Feil, og her er hvorfor:
"Om kode er lastet på punkt Y eller punkt X, er det ikke mer effektivt."
For det første er den eneste forskjellen mellom kode som er plassert i et tema og en kode som er plassert i et plugin, tidspunktet for utførelse. Aktive plugins lastes og utføres før det aktive temaet, men annet enn det er det null forskjell i måten den koden som finnes i hver er utført, og også null forskjell når det gjelder hvor effektiv koden er. Hvis du vil ha et flott diagram over WordPress-kjernebelastningsprosessen, kan du se dette Stack Exchange-innlegget.
Hvorvidt kode er lastet ved punkt Y eller punkt X, er det ikke mer effektivt.
For det andre, med punkt nummer 1, må vi nå spørre "hvordan er et tema det bedre stedet for funksjonalitet?", siden både plugin-kode og temakode blir utført på samme måte. Svaret er enkelt. Mens temaer har null fordeler over plugins når du vurderer hvor du skal plassere deler av funksjonalitet, viser det seg at plugins har noen betydelige fordeler over temaer . Jeg vil gå gjennom disse fordelene i et øyeblikk.
Jeg vet egentlig ikke hvor dette kommer fra, selv om jeg mistenker at det har å gjøre med det faktum at folk ofte er redd for plugins, og de hører ofte plugins som forårsaker ytelsesproblemer på et nettsted. Faktum i saken er at denne troen i beste fall er latterlig. Som nevnt ovenfor er det null forskjell (unntatt timing) i den måten som plugin-kode kjøres, sammenlignet med temakode.
Hvis du legger inn en funksjon i et plugin, utfører det, registrerer timingen, og gjør det samme med funksjonen, men mens den er plassert i temaet, vil du oppdage at det er null forskjell. De utfører begge med samme hastighet og har heller ingen direkte fordel over den andre, når det gjelder ytelse.
Dette bringer spørsmålet da, er temaer i siste instans bedre enn plugins for funksjonsstykker? Det korte svaret, nei, absolutt ikke.
Vi burde nå spørre, er plugins til slutt bedre for funksjonsstykker enn temaer? Det korte svaret, ja, mesteparten av tiden de definitivt er. Men hvorfor? Vel, det er noen grunner.
Det går videre enn bare disse fire grunnene, men det bør allerede være klart at de store fordelene har over temaer for separate funksjonsstykker.
Dette bringer meg nå til spørsmålet om det er dårlig å ha mange forskjellige plugins. Du kan sannsynligvis forestille deg hvor raskt antall aktive plugins vil utvides hvis du plasserer hver større del av funksjonalitet i separate plugins. Skaper dette et problem? Hva med en gang når du 10 plugins? Er det ikke så mye? Hva med 20 eller 30? Er ikke så ekstremt?
Nei.
Under WordCamp Kansas City 2012 fikk jeg muligheten til å tilbringe litt tid med å snakke med Otto, som er en av de beste utviklerne for WordPress og også en av Matt Mullenwegs høyrehånds menn. Otto gjør det meste av utviklingen på Matts personlige nettsted, og han fortalte meg at det er dusinvis av små funksjonalitet plugins som kjører på dette nettstedet. Hver av pluginene har spesifikke oppgaver, og de kjører perfekt side om side, selv om det er mange av dem.
Jeg løper personlig rundt 50 plugins på min Pippins Plugins nettsted.
Poenget er at plugins ikke forårsaker ytelsesproblemer rett og slett fordi de er plugins, ikke engang med 100 eller 200 aktive samtidig. Ytelsesproblemer med plugins kommer fra de som er dårlig skrevet, ikke antall plugins. Du kan enkelt forårsake mer ytelsesproblemer med en enkelt dårlig skrevet plugin enn med 300 enkle, godt skrevet plugins.
Ytelsesproblemer kommer vanligvis ned for å laste ressurser og utføre databasespørsmål, så plugins som gjør mange av dem, har en tendens til å påvirke ytelsen. Plugins som ikke utfører spørringer på databasen eller lastressurser har null (eller svært nær null) påvirkning på ytelse, og derfor kan du bokstavelig talt kjøre 300 plugins på nettstedet ditt uten innvirkning.
Jeg vet også at WP Candy løper oppover på 80 eller 90 aktive plugins til enhver tid.
Nøkkelen til å huske er at antall plugins har null innvirkning på ytelse, bare kvaliteten og typen plugin impact ytelse.
Det andre viktige punktet å huske er at koden i plugins kjører akkurat det samme som kode i temaer, så kvitt ideen om at det er bedre å plassere funksjonalitet i temaet ditt enn et plugin. Temaer skal kontrollere de visuelle aspektene til nettstedet ditt, ikke funksjonaliteten.
Det siste punktet å huske er at plugins er bare onde når de bygges dårlig. Plugins selv er aldri iboende dårlige; de er bare dårlige fordi koden som lager plugin-modulen er dårlig.