Wordpress - How can I make Capital letter ( upper-case ) permalinks?
The page URLs are defined by the slugs, and by default they are formatted and lower-cased by the function sanitize_title_with_dashes()
. However, this function is called via a filter, and you can unhook the filter so it doesn't get called:
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes' );
Just doing this is probably not a good idea, as it will not remove the spaces and other weird stuff in the slug. I suggest you copy the existing function, remove the part that lowercases it, and hook it up again:
add_filter( 'sanitize_title', 'wpse5029_sanitize_title_with_dashes' );
function wpse5029_sanitize_title_with_dashes($title) {
$title = strip_tags($title);
// Preserve escaped octets.
$title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
// Remove percent signs that are not part of an octet.
$title = str_replace('%', '', $title);
// Restore octets.
$title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);
$title = remove_accents($title);
if (seems_utf8($title)) {
//if (function_exists('mb_strtolower')) {
// $title = mb_strtolower($title, 'UTF-8');
//}
$title = utf8_uri_encode($title, 200);
}
//$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = str_replace('.', '-', $title);
// Keep upper-case chars too!
$title = preg_replace('/[^%a-zA-Z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
return $title;
}
I'd really recommend that you stick with the lowercase URLs for your site that WordPress uses (I consider that lowercase URLs are a best practice anyway) but that you set up 301 redirects for all the URLs for which you have this problem. I find it usually ends with pain when you try to fight a platform to keep it from doing what it wants to do, and URLs structures are really baked into WordPress' architecture.
I wrote another answer which is very similar to your needs and that example can show you how to use the 'template_redirect'
hook to set up a redirect for those URLs here you have this problem:
- Creating 301 Redirects for Post, Page, Category and Image URLs?
If you'd like more clarification, please ask.