Support » Fixing WordPress » how to make wp link uppercase

Viewing 5 replies - 1 through 5 (of 5 total)
  • Have you setup a permalinks style?
    Having done this, then for each page you can edit the permalink text.

    yes of course but wp will transform this IWC to this iwc automatically

    Yes, i see that, how embarasing.
    So what you could do is in .htaccess code translations of the UC text into their LC equivalent. Would have to manually code these in menus too, does not solve the whole problem.

    Thanks for the help i found this suggestion but i don’t what to put in the code can any one give me the code that i should put

    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;
    }

    Add this into the functions.php of your child theme:

    remove_filter( 'sanitize_title', 'sanitize_title_with_dashes' );
    add_filter( 'sanitize_title', 'keepUC_sanitize_title_with_dashes' );
    
    function keepUC_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;
    }

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘how to make wp link uppercase’ is closed to new replies.