6

On my test case, the page' title is "Privacy". The straightforward approach

strtolower(the_title())

also returns "Privacy" -- still with a capital P. I also tried

mb_strtolower(the_title())

and

mb_strtolower(the_title(), 'utf8')

with similar results.

Not sure if it matters, but my wp-config.php has

define('WPLANG', '');
define('DB_CHARSET', 'utf8');
  • thetitle() is not a WordPress function. – fuxia Jan 17 '12 at 0:29
10

lowercasing the title

If I'm understanding you correctly, you should be doing:

strtolower(get_the_title());

or

print strtolower(get_the_title());

if you want to display it. Below is an explanation as to why.

the_title() vs. get_the_title()

The function the_title() prints the current post's title unless you pass false as its third argument. Unless you call it like:

$title = the_title('', '', false);

The title will be printed, and the $title variable won't contain anything. This matters because calling strtolower() on an empty variable doesn't do very much.

You want to use get_the_title() function in most cases where you're looking to fill a variable with the content posts title.

Note, however, that if you're not currently in a loop, you'll need to pass a post ID to get_the_title(). In almost all cases when on a single post or page you can do this by using:

get_the_title($post->ID);

as the $post variable should be in the global scope.

  • Thanks, I was in fact confused betweet the_title() and get_the_title() – Jon Pincus Jan 17 '12 at 1:01
6

I think the best method for this is by using CSS (text-transform: lowercase).

But if you want to use PHP, WP for this you can use: <h1><?php echo strtolower( get_the_title() ); ?></h1>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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