Onsdag, d. 28. april, 2010 - 47 kommentarer

Fjern problemet med æøå i dine URLer i WordPress

Jeg har efterhånden set den ene blog efter den anden bygget på WordPress, hvor problemet med netop æøå i URL’erne på sider og blogindlæg forekommer – også kendt som permalinks – i hvertfald ved en engelsk installation af WordPress.

Problemet forekommer sågar også selvom du vælge at installere en “dansk” version af WordPress. Det kommer faktisk lidt bag på mig, men sådan ligger landet åbenbart.

Jeg har udarbejdet en nem og hurtig udbedring af dette lille, men ganske irriterende problem. Du skal dog være klar over, at løsningen som sådan ikke bare er plug and play. Løsningen kræver, at du skal lidt ned under motorhjelmen og udskifte et par møtrikker og skruer – her og der.

Meeeen bare rolig, jeg har faktisk gjort det ret simpelt, så selv den meget uerfarne skulle kunne fikse problemet -  helt alene.

Indholdsfortegnelse

  1. Inden vi går igang, hvor ligger problemet så gemt?
  2. Hvordan løser jeg så problemet?
  3. De alternative løsninger
  4. Lykkedes det at løse problemet?

Inden vi går igang, hvor ligger problemet så gemt?

Jo ser du, i en af WordPress’ mange filer findes en fil, der står for formattering af tekst og andet gøgl. Det er ikke en fil, der er tilgængelig i din mappe med templates, så derfor heller ikke tilgængelig fra dit administrationspanel. Netop derfor kan det hurtigt blive til en barriere for mange, men heldigvis kommer Michael for at rede dagen ;)

Filen du søger:

/wp-includes/formatting.php

I den fil forekommer en masse php-gøgl, der sørger for at udskifte specialkarakterer og andet, så de ikke skaber problemer i “permalinks” (ja, hvad hedder de på dansk?). Underligt nok udskifter WordPress som standard Å med A, mens Æ og Ø forbliver. Det kan hurtigt give nogle irriterende problemer som de fleste gerne vil være foruden – trust me!

Hvordan løser jeg så problemet?

Du finder ganske enkelt førnævnte fil, som du åbner i dit foretrukne redigeringsprogram, hvilket kunne være Adobe Dreamweaver, men skulle du ikke være velhaven eller have adgang til dette stykke software igennem arbejde eller på anden vis, så kan Notepad++ sagtens anbefales. Notepad++ giver en glimrende hightligt af syntaxen, og gør det derfor også nemmere for dig at rette op på problemet.

Når du har fundet frem til filen og åbnet denne, så skal du lede efter nedenstående omkring linie 500 i formatting.php:

// Decompositions for Latin-1 Supplement
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
chr(195).chr(191) => 'y',
// Decompositions for Latin Extended-A
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
chr(197).chr(190) => 'z', chr(197).chr(191) => 's',

Når du har fundet ovenstående stykke kildekode i formatting.php, så skal du udskifte dette med nedenstående:

// Decompositions for Latin-1 Supplement
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
chr(195).chr(132) => 'A', chr(195).chr(133) => 'aa',
chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
chr(195).chr(165) => 'aa', chr(195).chr(167) => 'c',
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
chr(195).chr(191) => 'y',
// Decompositions for Latin Extended-A
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
chr(195).chr(134) => 'ae', chr(195).chr(166) => 'ae',
chr(195).chr(152) => 'oe', chr(195).chr(184)  => 'oe',

Jeg kunne have nøjedes med at vise den nødvendige del af ovenstående stykke kildekode, men har valgt at medtage hele stykket, så det er nemmere og hurtigere for de fleste. På den anden side, kan jeg heller ikke helt huske, hvilken del af koden, jeg har opdateret ;) Desuden burde det også være nemmest for de fleste at overskrive den gamle klidekode med den nye uden at skulle rode for meget.

Gem efterfølgende din fil og overskriv den gamle på dit webhotel, hvor din installation af WordPress er at finde. Brugte du Adobe Dreamweaver, slipper du heldigvis for denne lille process. Brugte du Notepad++, kunne det være en idé at supplere med Filezilla, så du nemt og smertefrit kan overskrive den gamle fil.

Vær dog opmærksom på fremtidige tilretninger i WordPress

Det er dog værd at nævne en ekstra lille detalje ved denne fremgangsmåde, da du ved fremtidige opdateringer af WordPress, skal foretage samme ændring.

Nøjagtige samme fremgangsmetode som ved andre plugins, hvor du laver egne tilretninger. Desværre en af de få ulemper, jeg indtil videre, kan nævne ved WordPress.

De alternative løsninger

Takket være Morten Hinrichs blev jeg opmærksom på et plugin til WordPress, der angiveligvis skulle kunne løse problemet.

Pluginet ser dog kun ud til at være understøttet til og med WordPress 2.5, og derfor kan nogle problemer måske opstå. Ellers er det jo sådan set bare at afprøve det plugin, som kan spare dig for øvrige ændringer i fremtiden.

Transliterado til WordPress

Men også en stor tak til Thomas Rosenstand for et link til pluginet, slugger, der løser problemet til UG – endda uden at få beskidte fingre.

Slugger til WordPress

Såfremt hverken Transliterado eller Slugger kunne løse dit problem med æøå, så har Jakob Filsø lavet sit eget plugin, der er testet til og med WordPress 2.9.2.

Lykkedes det at løse problemet?

Afslutningsvis kunne jeg godt tænke mig at høre, om du fik problemet løst. Måske du kender til en helt anden måde, hvorpå du kan løse problemet.

Måske du ønsker at udskifte andre specialtegn, som WordPress ikke håndtere som standard, så har jeg heldigvis en god kilde, der kan hjælpe dig godt på vej. Desværre kræver det dog, at du er klar på at få lidt olie mellem fingerne og under neglene.

Sjovt nok fandt jeg slet ikke løsningen via WordPress, men Drupal :)

Hjælp til øvrige specialtegn

Fandt du min guide brugbar? – del din mening.

Skriv en kommentar
  1. Morten Hinrichs - På Twitter

    Jeg har tidligere løst problemet med et plugin der hedder slugger, men tro ikke det findes mere?, er i øjeblikket ved at test et andet Transliterado http://wordpress.org/extend/plugins/transliterado/ som også skulle kunne ændre åæø i urlen.

    Ville man ikke skulle ind og ændre formatting.php hver gang man opdatere wordpress til en nyere version?

  2. Tim - På Twitter

    Hej Michael

    Super ide med denne vejledning, det har selv irriteret mig, og jeg har tidligere kigget på en løsning på problemet, men åbenbart har det ikke irriteret mig nok ;-)

    Tim

  3. Michael Østergaard - På Twitter

    @Morten – Du har ret, man skal ind at opdatere filen hver gang, man opdatere WP. Det vil være samme procedure som ved opdatering af forskellige plugins, hvor man har lavet egne tilretninger.

    Jeg opdatere blogindlægget senere, hvor jeg tager det nævnte plugin med som et alternativt løsningsforslag. Synes desværre det plugin er svært at finde, fordi det har et spansk navn. Desmere, understøttes det også kun op til WP 2.5, men virker måske stadigvæk i nyere versioner, men måske ikke 3.0? Alligevel værd at nævne, takker :D

    @Tim, det var så lidt :) Det kom hurtigt til at irritere mig. I starten tænkte jeg, jamen jeg kan da selv rette mine slugs, men så er der bare endnu en ting af mange, man skal huske.

  4. Rosenstand fra Concept Interest - På Twitter

    Slugger fås ikke mere ude i det offentlige rum, men den løser problemet helt perfekt og helt automatisk uden pilleri i motoren.

    Hent det hos mig her: http://www.thomas-rosenstand.dk/slugger.zip
    .-= Seneste blogindlæg: SEO i Danmark =-.

  5. Michael Østergaard - På Twitter

    Kanont Thomas, mange tak for det :D Så forstår jeg bedre, at jeg har haft svært ved at finde et plugin.

  6. Kevin Steffer - På Twitter

    OK løsning på problemet og du har også min bekymring med om at WordPress opdateringer overskriver disse ændringer, det er lidt af en “pain”.
    Men du kan jo altid sende det til WordPressDK teamet og høre, om de ikke kunne implementere det i 3.0 :)

    @Rosenstand, den må jeg lige kigge nærmere på, TAK!

  7. Michael Østergaard - På Twitter

    Hej Kevin, netop. Derfor er jeg ikke den hurtigste ørn i skoven til at få opdateret hverken WordPress eller dertil hørende plugins. Men mon ikke bare verden hænger sådan sammen, når man vil have tingene på sin helt egen måde :)

    Iøvrigt tak for tippet omkring at skrive til WordPressDK. Det burde jeg absolut gøre, selvom jeg foretrækker det hele på engelsk. Måske jeg er lidt sær på det område, men styresystem, programmer m.fl. skal bare være på engelsk :D

  8. Bo

    Har prøvet Slugger med den fjerner artikeldelen af linket på dem den retter så der kun står domæne i linken. Så husk at backe databsen op, hvilket jeg heldigvis havde gjort.

    Er formatteringen ikke forkert i de kode eksempler du giver => bliver til =>

  9. Bo

    Hov kan se at den laver det rigtigt i kommentar feltet men jeg mener => ser forkert ud i kodeeksemplet.

  10. Michael Østergaard - På Twitter

    Hej Bo, rigtigt godt, at du deler din erfaring med os. Hvor er det helt præcist, den fjerner uheldigt?

    Du har ret, kildekoderne ser lidt spøjse ud. Det vil jeg få rettet hurtigst muligt. Tak, fordi du nævnte det, den havde jeg selv lige overset ;)

  11. Bo

    Hej Michael,

    Efter kørsel af slugger så blev mine urls den havde ændret vist http://mitdomæneher.dk/

    Alt efter / var væk. Men det kan måske relateres til andre plugins eller noget specifikt for min opsætning.

    Forresten hvad med linjenumrene i din kode, såfremt man skal copy/paste? Det fjerner nogle programmer måske automatisk?

  12. Michael Østergaard - På Twitter

    Hej Bo,

    Okay, ja det er ikke just hensigtsmæssigt. Jeg skal have begge plugins afprøvet, når jeg skal lave et skift til WordPress 3.0, hvilket i sig selv nok er en indikator for, at de sikkert ikke virker, desværre.

    Når du fører musen over området med kildekoden, kommer der i toppen mulighed for at kopierer koden, hvor du slipper for linienumrene ;)

  13. Mikael B

    Hej Michael,

    en fin løsning du kommer med der, og med super god vejledning, til et super godt emne. ak for det! Jeg kigger helt sikkert på dette indlæg igen om noget tid, når jeg smider min blog på nettet! Så ja, du løste helt sikkert mit problem. Nu har jeg ikke brugt wordpress så voldsomt meget, så tænkte på om der også er ÆØÅ problemer i brødteksten på siden, og hvis der er et problem der, om din løsning også ville hjælpe på det?

  14. Michael Østergaard - På Twitter

    Hej Mikael,

    Der er heldigvis ingen problemer med brødteksten. I hvertfald ikke når det kommmer til specialtegn, men derimod kan det være irriterende, at man ikke kan se alt HTML’en i editoren, men det er en helt anden sag.

  15. Jakob Filsø

    Hvis i har problemer med at få Slugger plugin’et til at virke, har jeg lavet et meget simpelt plugin der bare ændrer æ, ø og å til ae, oe og aa. Det gør sådan set det samme som du har gjort i formatting.php bare på plugin format, så det ikke forsvinder efter opgradering. Det er blevet testet på WordPress 2.9.2 og fordi det er meget simpelt bør det også virke på fremtidige versioner af WordPress.

    Det kan hentes på: http://www.jakobfilsoe.dk/plugins/

  16. Michael Østergaard - På Twitter

    Hej Jakob, det lyder kanont. Er pluginet nemt at udvide, såfremt man skulle ønske at udskifte andre specialtegn?

    Ellers er det super lækkert med den gode feedback, der ikke kun kan hjælpe mig selv, men forhåbentlig også mange andre. Mange tak for indsatsen :D

  17. Jakob Filsø

    Oversættelserne foregår på samme måde som det du har skrevet i formatting.php. Så det er bare at tilføje bogstaver som skal laves om. Du kan kigge i plugin filen. Det er en meget simpel funktion der gør det.

  18. Michael Østergaard - På Twitter

    Jamen det er jo yderst simpelt, Jakob :D

    Så ved jeg i hvertfald godt, hvad jeg vil bruge fremover. Og for den sags skyld prøve at promovere, når muligt.

  19. Britta

    Der er ikke nogen af de ting her, der virker på min WordPress-blog, som har ø i sit navn. Når jeg logger ind undlader den ø’et i browseren og kan derfor ikke finde siden.

  20. Michael Østergaard - På Twitter

    @Britta – Jeg skal lige forstå dig korrekt. Din blog er installeret på et domæne indeholdende ø? I såfald, så kan løsningerne heri desværre ikke hjælpe. Løsningerne her tager kun hånd om det, der står efter dit domæne.

    Eks:
    http://www.michael-ostergaard.dk/fjern-problemet-med-aeoeaa-i-dine-urler-i-wordpress

    Her har løsningen ændret i de specialtegn (æøå), der kommer efter mit domæne, michael-ostergaard.dk og skråstregen.

    Hvilken browser benytter du?

    Min anbefaling er dog, at holde sig fra domæner med specialtegn, da det kan skabe problemer.

  21. Britta

    Hej Michael, ja mit domænenavn er skønhedsblog.dk, så der er et ø i selve navnet. I Safari sletter den selve ø’et og skriver sknhedsblog.dk/wp-admin i browseren når jeg logger ind og i intenet explorer forbliver den bare i skønhedsblog.dk/wp-login.php og skriver at siden ikke findes.

  22. Michael Østergaard - På Twitter

    @Britta – Aha okay. Det du måske kunne gøre er at investere i skonhedsblog.dk inkl. webhotel og efterfølgende installere en WordPress på denne samt lade skønhedsblog.dk pege over på den anden.

    Det er desværre uheldighederne ved et domæne med æøå. Man kan dog håbe, at det blive bedre med tiden.

  23. Britta

    Ja det må så være løsningen på det – Tak for dit svar.

  24. Michael Østergaard - På Twitter

    @Britta – Det var så lidt. Er blot glad for at kunne byde ind med lidt hjælp på situationen :)

  25. Marcus Westberg - På Twitter

    Tak for en god guide. Lignende problemer opstod, da piller med svenske modstykke.
    .-= Seneste blogindlæg: Svensk SEO lanserar webbshop =-.

  26. Michael Østergaard - På Twitter

    Det var så lidt Marcus, rart at guiden faldt i god jord :)

  27. Peter Lauge - På Twitter

    Slugger er da et dejligt lille Plug-in – tak til Thomas for link!

  28. Michael Østergaard - På Twitter

    Ellers kan jeg anbefale Jakob Filsø’s plugin, der er fuldt ud kompatible med seneste WP – fungerer i hvertfald upåklageligt i min 3.0.1 installation af WordPress :)

  29. Jakob Filsø

    Til de interesserede er mit plugin blevet flyttet til http://www.jakobfilsoe.dk/resources/wordpress/

  30. Michael Østergaard - På Twitter

    Hej Jakob, mange tak for info. Bruger dit plugin ved alle de installationer, jeg laver af WP.

  31. Tonny

    Transliterado er det enkleste jeg har funnet. Å forandre kildekoden i WordPress er ensbetydende med at når man oppgraderer WordPress forsvinner hacket.

  32. per olsen

    jeg har prøvet transliterado… interfacet er på serbokratisk eller lign men det kan tilsyneladende ænfer ø til ae osv.

    danish slug fixer af jacob filsø; er kun en php fil når den er udpakket .. man skal lave et bibliotek eks “slug fixer” i wp´s plugin bibliotek og uploade den til det bibliotek, derefter aktiver det i admin. der er ingen indstilinger..virker bare æøå bliver konverteret til ae osv.

    MEN HVORFOR kan man ikke have æøå i slugs? det burde være bedre for læsere og søgemaskiner, jeg kan sagtens have æøå i selve filnavnet, hvorfor så ikke i stien /slugs?

  33. Michael Østergaard - På Twitter

    Hej Per,

    Hvis du installerer pluginet fra Jacob igennem WordPress, så skal du ikke selv ind at oprette nogle biblioteker til det :)

    ÆØÅ i slugs er et gammelt levn, som stadigvæk skaber rod og uheldigheder i links, når de åbnes fra forskellige programmer, emails og des lige. Derfor kan man ligeså godt tage “sorgerne” på forskud – og undgå disse uheldigheder.

    I dag er det eksempelvis fint muligt at købe domæner med ÆØÅ, men pga. nogle gamle browser, e-mailclienter og deslige, kan det stadig skabe lidt problemer – desværre.

  34. Bo

    Tak for en god gennemgang. Der er ingen tvivkl om, at der altid vil være lidt småudfordringer, når amn benytter Æ, Ø og Å i domænenavnene, så dette er en god måde at undgå nogle af dem. Tak for det.

  35. Michael Østergaard - På Twitter

    Hej Bo,

    Mange tak for din kommentar. Jeg er glad for, at du fandt mit indlæg brugbart :)

    Hvis ikke du har set det, så kan jeg anbefale Filsø’s plugin, så slipper man for selv at rode i mekanikken.

    http://www.jakobfilsoe.dk/resources/wordpress/

  36. Charlotte H

    Hej

    Hvordan får man Filsø’s plugin (rar. fil) installeret ? Igennem WP vil have en zip…Og den findes ikke på listen over plugins, jeg kan ikke finde den der…

    På forhånd tak

    mvh Charlotte

  37. Michael Østergaard - På Twitter

    Hej charlotte,

    Vi får overtalt Filsø til at ændre formatet fra rar til zip.

    Ellers har du adgang til din løsning via FTP?

  38. Charlotte H

    Tak for svar Michael.
    Ja, jeg har FTP adgang, men rar. filen lignede ikke de andre i plugins mappen på min wp installation, så jeg turde ikke bare smide den op…
    Hvor skal den ligge?

  39. Michael Østergaard - På Twitter

    Det var så lidt, Charlotte.

    Du er nødsaget til at pakke rar-filen ud på din computer, hvorefter du indholdet skal placeres i en mappe under “plugins” på din løsning.

    Du kan hente 7-zip til at udpakke rar-filer: http://www.7-zip.org

  40. Jakob Filsø

    Hej Charlotte.

    Jeg har ved en fejltagelse uploadet mit plugin som en rar fil sidst jeg var ved at rode med min hjemmeside. Det er ændret til en zip fil nu som du kan hente og installere direkte fra wordpress. Skriv igen hvis du fortsat har problemer.

  41. Charlotte H

    Tusind tak, så kan jeg let installere den:-)
    Nu vi er ved slugs og æøå. Hvad gør I med fil- og billedenavne, også for at søgemaskine optimere. F.eks ordet portræt, som jeg gerne vil have i både fil og billedenavne, med forskellige præfixer, feks nyfødt-portræt….?

    Mvh Charlotte

  42. Michael Østergaard - På Twitter

    Nu er jeg godt nok ikke ekspert på søgemaskinerne, men har altid for vane at holde specialtegn ude af filnavne – faktisk på samme måde som med slugs.

    Derimod kan man altid bruge specialtegn i den alternative tekst, man tilføjer et billede (alt-teksten, om man vil).

  43. Kristian - På Twitter

    Rigtig godt indlæg omkring et stort problem (tidligere) som der nu heldigvis ikke er de store udfordringer med :)

    Har du nogle nye fiduser i ærmerne her i medio 2012?

  44. Michael Østergaard - På Twitter

    Hej Kristian, mange tak for kommentaren.

    Tænker du på URLerne, SEO eller bare generelt WP?

  45. Knuth Becker

    Hej Michael,
    Rigtig god fidus, bestemt noget som jeg vil afprøve på nogle af mine sites.
    Men jeg overvejer, om det rent faktisk har nogen indflydelse på SEO. Selvfølgelig vil folk sansynligvis kunne huske URL’en på undersiden bedre, og på den måde vil man måske kunne høste et naturligt link, men google ved da godt at ae er æ, oe er ø og aa er å?

    mvh. Knuth