Wordpress Themes

A place for my programming projects and the occasional blog about technology related matters.

Icelandic letters in Wordpress permalinks

Author einar

I use Wordpress for this site as well as my personal blog. It works very well with icelandic letters for the most part but there was one problem. When you create a new post and give it a title, the post slug is generated from the title. For example, the title of this post is ‘Icelandic letters in Wordpress permalinks’ and it’s automatically changed to ‘icelandic-letters-in-wordpress-permalinks’ in the url. When you have a post with special characters in the title they are either removed or changed to some ASCII equivalent. For instance, Á becomes A, Í becomes I, ö becomes o and so on. This worked well for all icelandic letters except three, they are þ, æ, ð. When I made a post with the title ‘Þátturinn’ the post-slug would become ‘þatturinn’ and when I tried to enter that address in my address bar it changed to ‘%c3%beatturinn’ and I got a ‘page not found’ error from Wordpress.

Now, you can manually enter the post-slug when you write a post, but I don’t wanna have to do that every time I post, so I dug around the Wordpress code and found the replacement function. It’s called remove_accents and is in the file wp-includes/formatting.php. There, right before the line ‘// Decompositions for Latin Extended-A’ I added the following code:


    chr(195).chr(144) => 'D', chr(195).chr(176) => 'd',
    chr(195).chr(158) => 'TH',chr(195).chr(190) => 'th',
    chr(195).chr(134) => 'AE',chr(195).chr(166) => 'ae',

Now the characters are replaced automatically like this: Ð => D, ð => d, Þ => TH, þ => th, Æ => AE, æ => ae. I don’t know if everyone has this problem, or if it just has to do with the character set settings on my webhost but this works great for me. No more manually fixing page slugs! I’m gonna create a bug report with Wordpress and hopefully this will be accepted into the next version.

Few words in icelandic to help people find this post :) : Íslenskir stafir í wordpress linkum post slug permalink permalinks

Update 02.08.2007: Just found out that there’s already a plugin that does the same thing, and it doesn’t require you to mess with your Wordpress files. You can get it at http://wordpress.is/saekja/ibaetur/iceslugs.tar .

Update 13.08.2007: I made a patch for this and submitted it to Wordpress. The changes should come in WP 2.3. The patch is on ticket #4739 .

CommentComment

For spam detection purposes, please copy the number 3310 to the field below: