Afgelopen maanden ben ik een aantal keer WordPress websites tegen gekomen met berichten waarbij in een meta veld een URL naar een externe website werd opgeslagen. In veel gevallen was deze URL echter niet voorzien van het http:// protocol prefix. Dit resulteerde aan de voorkant van de website in onjuiste URL’s.
Als binnen een WordPress bericht in een meta veld ‘website’ alleen ‘www.domeinnaam.tld’ stond resulteerde dit in de volgende link: http://website.tld/2012/08/wordpress-bericht/www.domeinnaam.tld/, terwijl dit eigenlijk: http://www.domeinnaam.tld/ had moeten zijn. Dit probleem is echter eenvoudig op te lossen met een database query.
Met behulp van de volgende query zijn URL’s zonder de http:// protocol prefix op te vragen:
SELECT * FROM wp_postmeta WHERE meta_key = 'website' AND meta_value != '' AND meta_value NOT LIKE 'http%'
Als de ouput van deze query correct is dan kan met behulp van de volgende query de URL’s uitgebreid worden met het http:// protocol.
UPDATE wp_postmeta SET meta_value = CONCAT('http://', meta_value) WHERE meta_key = 'website' AND meta_value != '' AND meta_value NOT LIKE 'http%' ;