Hvorfor kan jeg ikke redigere i tema-filerne?

Det er så nemt at rette i et WordPress-tema via kontrolpanelet i WordPress: Kontrolpanel > Udseende > Editor. Det gælder også plugins, hvor man dog får denne advarsel:

Advarsel: At lave ændringer i aktive plugins kan ikke anbefales. Hvis dine ændringer skaber uoprettelige fejl, så vil plugin'et automatisk blive deaktiveret.

En tilsvarende advarsel får man ikke når man prøver at redigere i tema-filerne, men det kan faktisk være lige så ‘farligt’, og vi har derfor valgt at deaktivere muligheden for at redigere filerne på de WordPress-sites vi udvikler.

WordPress theme editor disabled

Hvorfor ikke redigere i tema- og plugin-filer via kontrolpanelet?

1. Bordet fanger.
Når du gemmer en rettet fil, overskrives den gamle fil. Der er ikke nogen Ctrl-Z (Undo/Fortryd)-knap.

2. Fejl
Alle kan se det. Så snart du gemmer en ændring, kan det ses på websitet. Også hvis du kommer til at slette en <div>-tag i html-markup med det resultatet at hele layoutet braser sammen.

Hvis man laver en syntaksfejl i functions.php og gemmer den, er resultatet den berygtede White Screen of Death som kan skyldes noget så banalt som et forkert placeret mellemrum eller en manglende apostrof et sted i koden. Selvom fejlen er banal, kan den ikke rettes via kontrolpanelet. Indtil man får adgang til filerne via ftp eller til databasen via phpMyadmin, er den eneste fornøjelse man får af sit website altså en helt hvid skærm.

3. Sikkerhed
Alle med admin-adgang til et WordPress-site, har adgang til at ændre (eller ødelægge) temaer og plugins – det gælder også evt. hackere.

4. Sass
Hvis man bruger Sass (eller en anden CSS Preprocessor) kan disse filer ikke rettes via kontrolpanet, det er kun den kompilerede css-fil der er tilgængelig, d.v.s. ændringer i css-filen vil blive overskrevet, næste gang temaet opdateres/videreudvikles.

5. Versionsstyring
Hvis man bruger versionsstyring, f.eks. git (Github, Bitbucket) til at holde styr på ændringer i koden, vil evt. ændringer foretaget via WordPress-kontrolpanelet ikke være omfattet.

Fjern muligheden for at redigere i tema- og plugin-filer

Det er nemt, det er blot en enkelt linje, som skal tilføjes til wp-config.php:

define('DISALLOW_FILE_EDIT', true);

Hvordan kan man så redigere i filerne?

Brug en god tekst-editor, f.eks. Notepad++ eller PHPStorm.
Dertil et ftp-program (File Transfer Protocol), f.eks. FileZilla eller Cyberduck.