I forsøget på at få nogle pænere og mere SEO-venlige URL’er har jeg her til formiddag ændret i indstillinger for permalinks i WordPress, så titlen på blogindlæggene også vises i URL’erne, men det viste dog sig at være forbundet med problemer. Den logik, som fjerner specialtegn i URL’erne, har WordPress-folkene nemlig ikke kodet ordentligt, og det viser sig fx ved at et blogindlæg med titlen:
Så klappede fælden vist
får en URL, som indeholder strengen
sa-klappede-f%c3%a6lden-vist
Det har vist sig problematisk med nogle webservere, men for mit eget vedkommende virker URL’erne, selvom de på ingen måde er hensigtsmæssige. Det er så vidt vides kun tegnene “æ”, “ø”, “Æ” og “Ø”, som ikke bliver håndteret korrekt, og fejlen har været kendt længe, men er endnu ikke blevet rettet i den offentligt tilgængelige version og ser først ud til at komme med i version 3.1.
Man kan dog selv rette fejlen ved at indsætte linjerne
chr(195).chr(166) => 'ae', chr(195).chr(184) => 'oe', chr(195).chr(134) => 'AE', chr(195).chr(152) => 'OE',
i funktionen remove_accents i filen formatting.php sammen med de andre linjer omkring linje 550.
Dette retter dog kun problemet for fremtidige blogindlæg. For at rette alle eksisterende blogindlæg skal man pille direkte i MySQL-databasen. Dette gjorde jeg med:
UPDATE wp_posts SET post_name=
replace(post_name,'%c3%a6','ae') WHERE post_name LIKE '%\%%';
UPDATE wp_posts SET post_name=
replace(post_name,'%c3%86','AE') WHERE post_name LIKE '%\%%';
UPDATE wp_posts SET post_name=
replace(post_name,'%c3%b8','o') WHERE post_name LIKE '%\%%';
UPDATE wp_posts SET post_name=
replace(post_name,'%c3%98','Ø') WHERE post_name LIKE '%\%%';
Det løste mine problemer (jeg bruger WordPress 2.9.2.)
Samtidig kan man overveje at rette:
chr(195).chr(133) => 'A'
til
chr(195).chr(133) => 'AA'
og
chr(195).chr(165) => 'a'
til
chr(195).chr(165) => 'aa'
Det laver “å” og “Å” om til hhv. “aa” og “AA”, hvilket efter min mening er mere fornuftigt end at lave det om til et enkelt “a”. Dette retter dog også kun fremtidige blogindlæg, og at rette eksisterende indlæg i databasen er noget mere kompliceret, så det overlader jeg til læseren selv at gøre.
Vigtigt: Brug kun ovenstående forslag på dit eget ansvar. Jeg har ikke det komplette overblik over alle detaljer i WordPress, så der kan måske være uønskede sideeffekter.
Engelske søgeord med henblik for at finde dette blogindlæg: WordPress Danish characters bug permalinks