Mobiele Navigatie

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 u 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 SQL-query in de WordPress database, kunt u de benodigde wijzigingen snel en efficiënt doorvoeren. Hieronder staan ​​een aantal zeer handige SQL-query’s die van grote hulp voor u kunnen zijn..

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

Maar eerst, .. het juiste Gereedschap!

Een gemakkelijke manier om een van de onderstaande query’s 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 SQL-query mee uitgevoerd kunnen worden.

In onderstaande SQL query’s wordt ervan uitgegaan dat de standaard table prefix ‘wp_’ wordt gebruikt. Als u 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 query is uiterst handig als u uw 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 u de site off-line heeft ontworpen en gecodeerd (bijv. op een localhost met Wamp), en u wilt uw WordPress site van de localhost naar uw server migreren.

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

SQL
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://www.oude_site.nl', 'http://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 u extra URL data voor elke post hebt opgeslagen, kunt u deze query gebruiken om ze allemaal te veranderen.

SQL
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://www.oude_site.nl', 'http://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 uw WordPress Theme). In de inhoud van elk bericht, staan dus nog de oude (interne) verwijzingen naar andere artikelen of gebruikte afbeeldingen. Daarom moet u al deze URL’s ook veranderen naar het nieuwe domein.

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

Verander de GUID (Globally Unique Identifier)

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

Dit is cruciaal omdat GUID wordt gebruikt om uw 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.

SQL
UPDATE wp_posts SET guid = REPLACE(guid, 'http://www.oude_site.nl', 'http://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 u de plugin heeft verwijderd, kunnen deze gegevens — die niet langer nodig zijn — nog achterblijven in de post_meta tabel.

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

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

Verwijder oude Revisies

Wanneer u een artikel in WordPress aan het bewerken bent, zullen er vele automatische kopieën (revisies) worden opgeslagen. Dit is uiteraard handig mocht uw browser of computer crashen, zodat u 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.

SQL
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 u een query uitvoert om oude berichten handmatig uit uw database te verwijderen — zullen de oude Tags van een artikel opgeslagen blijven en daardoor in uw Tag cloud of lijst blijven terugkomen. Met deze query kunt u de niet-gebruikte tags identificeren om deze vervolgens handmatig te verwijderen uit de database.

SQL
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 u wat onderhoud moet doen aan uw WordPress database en de boel wilt optimaliseren of u wilt een WordPress site migreren naar een ander domein, dan zijn bovenstaande SQL-query’s enorm nuttig om het process te versnellen.

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

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

Deel dit Bericht:

Auteur: Jan Rajtoral

Jan - AKA Gonzo the Great - Rajtoral is een ervaren grafische en web designer, gespecialiseerd in (front-end) Responsive Web Design, WordPress Ontwikkeling, Logo en Huisstijl ontwerp.

5 Reacties

McCage, 3 jaar geleden | Beantwoorden

Dag Jan, ik probeer een online website te klonen naar XAMPP en heb daarvoor gebruik gemaakt van een aantal van door jou gegeven queries. Er zijn nog wat problemen mee en daarvoor heb ik hulp gevraagd op WordPress Support maar nog geen reacties gekregen. Misschien wil jij daar ook eens naar kijken? Alvast bedankt.
https://nl.wordpress.org/support/topic/clone-op-xampp/

    Jan Rajtoral, 3 jaar geleden | Beantwoorden

    Hoi Han,

    Ik heb je bericht gelezen op de WP Support .. maar, heb je wel de juiste gegevens ingevuld bij de verschillende queries? Dus bijv. in de regel: UPDATE wp_options SET option_value = REPLACE(option_value, 'http://www.oude_site.nl', 'http://www.nieuwe_site.nl'); zijn er een aantal dingen die correct moeten worden ingevuld. In bovenstaande regel moet je de table prefix (hier: wp_) vervangen door de table prefix van jouw db.

    Verder dien je ook de juiste sitenamen te veranderen, in jouw geval wordt de oude site ‘http://ruilkringdelftwestland.nl‘en de nieuwe site wordt ‘http://localhost/Delft‘. Als je deze query in myPHPadmin invult zou het moeten werken ..?

    Verder zijn de permalinks correct ingesteld in je dashboard van je WP en in je .htaccess? Soms werkt het ook als je in de localhost de permalinks insteld op ‘standaard’, dan kun je na migratie de site weer op een andere permalink instellen.

    Hopelijk lukt het je nu wel .. keep me posted! Suk6!

McCage, 3 jaar geleden | Beantwoorden

Dag Jan, het probleem is opgelost door ‘regenerate .htaccess’: permalinks instellinge opnieuw saven. Daarna nog één menu item aanpassen: Home opnieuw aanmaken en de oude verwijderen. Toch bedankt..

McCage, 3 jaar geleden | Beantwoorden

Dag Jan, ik zie je antwoord nu pas nadat ik een nieuw bericht had ingestuurd. Ik had niet gerekend op zo’n snel antwoord van je en ben gaan doorzoeken. Bovenstaande oplossing gevonden met elementen die je ook al in je antwoord hebt gegeven. Ik verwachtte misschien een mailtje met de vermelding dat je antwoord had gegeven maar dat heb ik niet ontvangen. Misschien kun je daar iets mee.

    Jan Rajtoral, 3 jaar geleden | Beantwoorden

    Hi Han,

    ja, .. snel ben ik hé ;-P

    Maar idd. de permalinks instellingen kunnen soms een beetje hardnekkig zijn op een localhost (vandaar de opmerking om deze gewoon op standaard te zetten). Maar als je permalinks het niet doen, dan is de .htaccess en je instellingen goede plaatsen om te onderzoeken! Blij dat je probleem is opgelost!

    Hmmm, wel raar dat je inderdaad geen notification hebt gekregen van mijn eerste reactie? Daar duik ik dan wel weer in! Ciao!

Laat een Reactie achter


*) Verplichte velden.

Meest Recent Project

Leerschoon M/V