Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 5 · 5.4

Minder is meer: opruimen en conflicten oplossen

Module 5: Thema's en plugins · Leestijd: 9 minuten

Leerdoel: Na deze les kun je plugins opruimen en een conflict of een witte pagina zelf opsporen en oplossen.

Kernbegrippen: deactiveren vs verwijderen, inactieve code, kritieke fout, herstelmodus (recovery mode), Sitediagnose, problemen-oplossen-modus, pluginmap hernoemen, WP_DEBUG, WP_DEBUG_LOG, debug.log, foutlog

Uitzetten is niet weggooien

Bij Plugins kun je een plugin deactiveren of verwijderen. Het verschil:

  • Deactiveren: WordPress laadt de plugin niet meer. Maar de bestanden blijven in wp-content/plugins/ staan, en zijn vaak nog rechtstreeks via de webserver op te vragen. Zit er een lek in een los PHP-bestand van die plugin, dan is dat lek er nog steeds. Inbrekers scannen op bekende kwetsbare bestanden, niet op actieve plugins.
  • Verwijderen: de bestanden gaan weg. Sommige plugins ruimen bij het verwijderen ook hun instellingen en tabellen in de database op; andere laten die staan.

Gebruik je een plugin niet meer, verwijder hem dan. Deactiveren is alleen voor even (tijdens het zoeken naar een probleem). Hetzelfde geldt voor thema's (les 2.4).

Opruimen: een vaste ronde

Loop één keer per kwartaal (les 9.4) je plugins langs. Per plugin:

  1. Waarvoor is hij? Weet je het niet meer, zoek het uit. Vaak blijkt een plugin ooit voor één ding geïnstalleerd en nooit weggehaald.
  2. Wordt hij nog gebruikt? Een sliderplugin terwijl er nergens een slider staat, een formulierplugin terwijl je contactpagina een ander formulier gebruikt.
  3. Kan het zonder? Kan WordPress, het thema of een andere plugin het al (les 5.3)?
  4. Is hij nog in onderhoud? Laatst bijgewerkt, nog in de pluginmap?

Doe het opruimen eerst in staging (les 8.3), of maak minstens een back-up, en verwijder één plugin tegelijk zodat je weet wat er misging als er iets misgaat. Let op shortcodes: verwijder je een plugin die [formulier id="2"] leverde, dan staat die tekst daarna letterlijk op je pagina.

Als het misgaat: de kritieke fout

Na een update, een nieuwe plugin of een PHP-upgrade zie je opeens:

Er is een kritieke fout op deze website.

of een volledig witte pagina. Dat betekent: PHP is gestopt met een fatale fout voordat er een pagina was (les 1.2). Meestal komt dat door een plugin of thema dat niet samengaat met iets anders: een andere plugin, de nieuwe versie van WordPress, of de PHP-versie.

Sinds WordPress 5.2 doet WordPress dan twee dingen:

  • het stuurt een e-mail naar het beheerdersadres met welke plugin of welk thema de fout gaf, en een speciale link;
  • met die link log je in in de herstelmodus (recovery mode): het beheer werkt dan, met de plugin die de fout gaf tijdelijk uitgezet, zodat je hem kunt bijwerken, vervangen of verwijderen.

Daarom is een beheerdersadres dat je leest zo belangrijk (les 2.2).

Zelf zoeken: de stappen

Komt er geen mail, of werkt de herstelmodus niet? Zo vind je het zelf.

1. Kijk in het foutlog

De fout staat bijna altijd in het foutlog van de webserver of van PHP. Bij DirectAdmin vind je dat bij de logboeken van je domein. Je zoekt een regel met PHP Fatal error en het tijdstip van je poging:

PHP Fatal error:  Uncaught Error: Call to undefined function create_function()
in /home/gebruiker/domains/example.com/public_html/wp-content/plugins/oude-slider/slider.php:42

Het pad vertelt je wie de schuldige is: hier de plugin in de map oude-slider. De rest van de regel vertelt waarom (hier: een functie die in PHP 8 is verwijderd, les 8.4).

2. Zet de debuglog aan (niet de schermmelding)

Staat er niets bruikbaars in het foutlog, zet dan in wp-config.php (boven "stop met bewerken"):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

WordPress schrijft dan alle fouten naar wp-content/debug.log, zonder ze aan bezoekers te tonen. Laat dit nooit langer aan staan dan nodig: debug.log staat in een map die de webserver aanbiedt, en wie het adres kent, kan het lezen. Daarin staan paden, soms gebruikersnamen en andere informatie die een inbreker helpt. Zet het na het zoeken weer uit en verwijder debug.log. Of laat WordPress het logbestand buiten de webmap schrijven door bij WP_DEBUG_LOG een pad op te geven (bijvoorbeeld '/home/gebruiker/logs/wp-debug.log', als je hoster dat toestaat). In les 7.4 controleer je dat debug.log niet openbaar is.

3. Plugin uitzetten zonder beheer

Kom je niet in het beheer, zet de verdachte plugin dan uit door zijn map te hernoemen, via Bestandsbeheer of SFTP:

wp-content/plugins/oude-slider   wordt   wp-content/plugins/oude-slider-uit

WordPress vindt de plugin dan niet meer en zet hem uit. Weet je niet welke het is, hernoem dan de hele map plugins naar plugins-uit: alle plugins gaan uit. Werkt de site dan, maak een nieuwe lege map plugins, zet de plugins één voor één terug en kijk na elke plugin of de fout terugkomt. Voor een thema geldt hetzelfde: hernoem de map van het actieve thema en WordPress valt terug op een standaardthema, als dat er nog staat (les 2.4).

4. Conflicten zonder fatale fout

Niet elk probleem is een kritieke fout. Soms werkt één functie niet: een knop doet niets, het formulier verstuurt niet, de editor laadt half. Dan is het vaak een conflict tussen twee plugins of tussen een plugin en het thema. Daarvoor is de officiële plugin Health Check & Troubleshooting handig: in de problemen-oplossen-modus zet hij voor alleen jouw sessie alle plugins uit en schakelt hij naar een standaardthema, terwijl bezoekers gewoon de normale site zien. Daarna zet je ze één voor één aan tot het probleem terugkomt.

Kijk ook in de console van je browser (F12): JavaScript-fouten noemen vaak het bestand, en daarmee de plugin.

Sitediagnose

Onder Hulpmiddelen > Sitediagnose controleert WordPress zelf je site: verouderde PHP-versie, plugins en thema's die niet actief zijn, ontbrekende PHP-extensies, een REST API die niet werkt, geplande taken die achterlopen. Op het tabblad Info staan alle gegevens van je installatie (versies, paden, PHP-instellingen). Dat tabblad kun je kopiëren en meesturen als je hulp vraagt. Kijk hier na elke grote wijziging even.

Samenvatting

  • Deactiveren laat de bestanden staan; verwijder plugins en thema's die je niet gebruikt.
  • Ruim elk kwartaal op, één plugin tegelijk, met een back-up of in staging.
  • Bij een kritieke fout stuurt WordPress een mail met een link naar de herstelmodus.
  • Het foutlog of debug.log noemt het pad van de schuldige; zet debug na het zoeken weer uit, want debug.log is anders openbaar.
  • Zonder beheer zet je een plugin uit door zijn map te hernoemen; conflicten zoek je met de problemen-oplossen-modus.

Quiz

1. Waarom is een gedeactiveerde plugin niet helemaal veilig?



2. Je site toont "Er is een kritieke fout" en je kunt niet inloggen. Wat is de snelste eerste stap?



3. Waarom zet je WP_DEBUG_DISPLAY op false als je WP_DEBUG aanzet op een live site?



4. Hoe zet je een plugin uit als je niet in het beheer kunt?



Opdracht

Opdracht A5.4: Is je debug-log niet openbaar? Vul het adres van je site in en bewijs met de code die de opdracht je geeft dat het je eigen site is (een TXT-record of een klein bestand). Het programma vraagt /wp-content/debug.log op: goed is als dat niet bestaat of geweigerd wordt (404 of 403). Krijgt het programma een bestand terug, dan is dat rood. Daarnaast telt het programma hoeveel verschillende pluginmappen in de HTML van je homepage voorkomen (alleen ter informatie).

Opdracht A5.4: Is je debug-log niet openbaar?

Deze controle vraagt paden op die je alleen bij je eigen site laat nakijken. Klik eerst op "Toon mijn code" en zet die code als TXT-record op _weboke-cursus.<jouw domein> of als bestand op je site (zie de uitleg bij de code).


Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Opdracht D5.4: Je pluginlijst opruimen. Maak een lijst van al je plugins (actief en inactief): naam, waarvoor, nog nodig (ja/nee), alternatief zonder plugin. Verwijder (na een back-up of in staging) de plugins die niet meer nodig zijn, één tegelijk, en kijk na elke verwijdering of de site nog werkt. Vul in hoeveel plugins je had en hoeveel er over zijn, en noteer of er shortcodes achterbleven die je moest opruimen.

Opdracht D5.4: Je pluginlijst opruimen

Deze opdracht doe je zelf; niemand kijkt hem na. Vink af wat je gedaan hebt en markeer de opdracht als gedaan.



Je vinkjes en aantekeningen blijven alleen in deze browser; we sturen ze nergens heen. Ben je aangemeld, dan bewaren we in Mijn cursussen alleen dat je de opdracht gedaan hebt.

Verder lezen

Deze artikelen beschrijven de stappen in de panelen van WebOké; in andere panelen werken ze vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…