Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

How can I make a link like this?

http://www.lifecellskin.us/Dev/About

the "Using_Permalinks" part, A is Capital letters. But WP automatically convert upper case to lower case.

I'm trying to convert an old site that made by only html to a WP platform site. Some links to the site look like this:

http://www.lifecellskin.us/About

The site is already indexed by SEO. so I don't want to lose SE rankings.

Thanks for reading this, and hope somebody will be able to shed some light on it...

share|improve this question

4 Answers 4

up vote 5 down vote accepted

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;
}
share|improve this answer
    
just a stupid question, why do you prefix wpse{anynumber} to your functions? –  Horttcore Dec 8 '10 at 8:20
1  
@Horttcore: wpse5029 like WP Stack Exchange question #5029? –  Denis Dec 8 '10 at 9:23
4  
@Horttcore: Indeed, I prefix all my function names with the question number. To try them myself as separate plugins, and in case somebody copies them in their own code without changing: wpseNNNN is probably unique. –  Jan Fabry Dec 8 '10 at 12:51
    
Ah that makes sense to me :-) –  Horttcore Dec 8 '10 at 14:12
    
That's kool! +1 for the smart prefix. –  kaiser Mar 28 '11 at 14:06

you can use custom permalink plugins, just search in wp extend plugins page, you can customize permalink per post or page and doesnt affect to the default permalink seting

share|improve this answer

Hi @shalu:

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:

If you'd like more clarification, please ask.

share|improve this answer
    
Thanks for Reply Mike. –  shalu Dec 8 '10 at 11:03

As far as I figure, search engines are not case specific, although URL's are case sensitive. I would recommend getting rid of the capitalized file format, as it is hard for users to remember.

If you really want to stick to the previous structure, you will need to work with regexp (regular expressions) in .htaccess file.

share|improve this answer
    
Thanks for reply –  shalu Dec 8 '10 at 11:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.