Modify WordPress to not replace + (plus) characters from URLs?

You can hook into WordPress’ slug algorithm and create your own slugs. For an example look into my plugin Germanix URL. I’m not sure if WordPress can accept requests with an + without further tweaking tough.

If just want to allow the slug without much coding, install Germanix and create a second plugin with this code:

<?php # -*- coding: utf-8 -*-
/*
Plugin Name: Germanix plus +
*/

add_filter( 'germanix_translit_list', 'remove_plus_from_transliteration', 10, 1);
add_filter( 'germanix_lower_ascii_regex', 'allow_plus_on_regex', 10, 1);

function remove_plus_from_transliteration( $utf8 )
{
    unset ( $utf8['+'] );
    return $utf8;
}
function allow_plus_on_regex( $regex )
{
    # $regex['pattern'] => '~([^a-z\d_+.-])~';  // was this
    $regex['pattern'] = '~([^a-z\d_+.-])~';  // now this
    return $regex;
}

remove_filter( 'editable_slug', 'urldecode' );

I haven’t tested this now but it should work. 🙂