Handige MySQL Queries voor WordPress

WordPress wordt aangedreven door een MySQL database. MySQL is een gratis ‘relationele database management systeem‘ die door de meeste web hosting diensten wordt gebruikt in combinatie met CMS blogging platformen. Alle WordPress gegevens, zoals de berichten, commentaren, categorieën en instellingen worden opgeslagen in de MySQL database.

Als je informatie over de hele linie wilt wijzigen in WordPress, bijvoorbeeld vanwege het verhuizen naar een andere URL (Uniform Resource Locator), dan zal het handmatig aanpassen van elke record zeer tijdrovend én gevoelig voor menselijke (typ)fouten zijn.

Door gebruik te maken van een MySQL query in de WordPress database, kun je de benodigde wijzigingen snel en efficiënt doorvoeren. Hieronder staan ​​een aantal zeer handige MySQL queries die van grote hulp voor jou kunnen zijn.

Voordat je verder gaat met wijzigingen in de database, maak een back-up van je database. Dit zorgt ervoor dat zelfs als er iets fout gaat, jij nog steeds in staat bent om het te herstellen.

Maar eerst, .. het juiste Gereedschap!

Een gemakkelijke manier om een van de onderstaande MySQL queries uit te voeren, is door gebruik te maken van phpMyAdmin. phpMyAdmin is een van de meest voorkomende databank ‘look-up en editing tools’. Bijna alle bedieningspanelen van web hosting services bieden deze dan ook aan.

Maar er zijn ook een aantal WordPress plugins zoals bijv. WordPress SQL Executioner –een WordPress plugin waar MySQL query mee uitgevoerd kunnen worden.

In onderstaande MySQL query’s wordt ervan uitgegaan dat de standaard table prefix ‘wp_’ wordt gebruikt. Als je gebruik maakt van een andere table prefix, verander dit dan in de volgende database query’s.

Verander de Site URL en Homepage URL

WordPress slaat het absolute pad van de site-URL en van de homepage-URL op in de database (een absolute pad wordt gezien vanaf de root van de website). Deze MySQL query is uiterst handig als je jouw site wilt migreren van een oud domein naar een nieuw domein, of van een oud sub-domein naar een nieuwe .. etc.

Ook erg handig als je de site off-line heeft ontworpen en gecodeerd (bijv. op een localhost met Wamp), en je wilt jouw WordPress site van de localhost naar je server migreren.

Zonder deze MySQL query te gebruiken zou jouw website niet werken op een nieuw domein, omdat het absolute pad nog steeds verwijst naar het oude domein of de localhost.

UPDATE wp_options SET option_value = REPLACE(option_value, 'https://www.oude_site.nl', 'https://www.nieuwe_site.nl');

Updaten URL’s in de Post Meta

Updaten van de Post Meta werkt bijna op dezelfde manier als het updaten van de URL in de post inhoud. Post Meta data is de “administratieve” informatie behorend bij elk bericht. Deze informatie omvat meestal de auteur van het artikel, datum van de publicatie, de categorie en tags toegekend aan het artikel, etc.

Als je extra URL data voor elke post hebt opgeslagen, kun je deze MySQL query gebruiken om ze allemaal te veranderen.

UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'https://www.oude_site.nl', 'https://www.nieuwe_site.nl');

Verander de URL’s in de inhoud

WordPress maakt overal gebruik van absolute paden in URL-koppelingen, in plaats van relatieve paden (een relatief pad beschrijft de locatie van het gekoppelde bestand in relatie tot de locatie van jouw WordPress Theme). In de inhoud van elk bericht, staan dus nog de oude (interne) verwijzingen naar andere artikelen of gebruikte afbeeldingen. Daarom moet je al deze URL’s ook veranderen naar het nieuwe domein.

UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://www.oude_site.nl', 'https://www.nieuwe_site.nl');

Verander de GUID (Globally Unique Identifier)

Nadat je jouw blog heeft gemigreerd van de localhost naar je server of van een oud domein naar een nieuwe, moet je ook de URL’s voor het veld GUID veranderen in de wp_posts tabel.

Dit is cruciaal omdat GUID wordt gebruikt om jouw post of pagina slug (slugs worden gebruikt in de ‘permalinks’ structuur van WordPress) te vertalen naar het juiste absolute pad voor een artikel of pagina als het verkeerd wordt ingevoerd.

UPDATE wp_posts SET guid = REPLACE(guid, 'https://www.oude_site.nl', 'https://www.nieuwe_site.nl');

Ongebruikte Post Meta’s verwijderen

Het installeren of verwijderen van plugins is een veel voorkomende taak in WordPress. Echter, sommige plugins maken gebruik van de post meta om gegevens met betrekking tot de plugin op te slaan. Nadat je de plugin hebt verwijderd, kunnen deze gegevens –die niet langer nodig zijn– nog achterblijven in de post_meta tabel.

Voer de volgende MySQL query uit om deze ongebruikte post-meta waardes op te ruimen. Dit zal helpen om de snelheid te verbeteren en de grootte van jouw database te optimaliseren.

DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key'

Verwijder oude Revisies

Wanneer je een artikel in WordPress aan het bewerken bent, zullen er vele automatische kopieën (revisies) worden opgeslagen. Dit is uiteraard handig mocht jouw browser of computer crashen, zodat je een recente backup achter de hand heeft. Na verloop van tijd echter, na het publiceren van een aantal tientallen artikelen of pagina’s, zal de grootte van de database aanzienlijk zijn toegenomen door deze backups.

Dit kan onnodige ‘loops’ veroorzaken (automatische herhalende processen, zoals bijv. berekeningen of ophalen van gegevens uit de database) en zal de laadtijd van de pagina negatief beïnvloeden.

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Indentificeer ongebruikte Tags

In een WordPress-database –als je een MySQL query uitvoert om oude berichten handmatig uit je database te verwijderen– zullen de oude Tags van een artikel opgeslagen blijven en daardoor in jouw Tag cloud of lijst blijven terugkomen. Met deze MySQL query kun je de niet-gebruikte tags identificeren om deze vervolgens handmatig te verwijderen uit de database.

SELECT * From wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;

Bottomline

Als je wat onderhoud moet doen aan jouw WordPress database en de boel wilt optimaliseren of je wilt een WordPress site migreren naar een ander domein, dan zijn bovenstaande MySQL queries enorm nuttig om het process te versnellen.

Wil je zo ver mogelijk vandaan blijven van deze query’s voor je database, adviseer ik jou om eens een kijkje te nemen naar de volgende 2 (premium!) plugins. WP Migrate DB Pro maakt het super eenvoudig om je site te migreren naar een nieuwe URL. BackupBuddy is ook een uitstekende plugin als het gaat om op het opslaan van een kopie van jouw gehele database!

Uiteraard kun je ook contact met mij opnemen als je er niet uitkomt, samen kunnen we dan kijken wat de beste methode is om jouw database te onderhouden en bij te werken.

Deel dit Bericht:

Avatar for Jan Rajtoral

Auteur: Jan Rajtoral

Jan Rajtoral is een ervaren grafische vormgever en webdesigner. Hij heeft een ruime ervaring met Front-end web design (HTML, CSS en JS/jQuery), User Experience (UX), Toegankelijkheid (WCAG), Performance en WordPress Ontwikkeling & Thema Ontwerp. Maar hij ontwerpt en ontwikkelt ook logo’s en huisstijlen, waarbij hij altijd streeft naar merkconsistentie in het hele ontwerp.