Remove spaces when echoing the_title

Ever wanted to print or echo the WordPress title attribute without spaces?

This little trick can be useful for calling custom functions and printing the title with out spaces for W3C compatibility. I used this trick in a new theme called Galleria, which will be out for public download in the coming days.

Using this comes in handy for a delicious text link:

<?php $title = get_the_title(); ?>
<a href="<?php echo $title; ?>&amp;<?php echo str_replace(" ", "%20", $title); ?>">
Bookmark This (<?php echo $title; ?>)</a>

What I am doing is calling $title = get_the_title(); and using str_replace(" ", "%20", $title); to replace empty spaces with a %20, which is used in URL encoding empty spaces.

Alternatively you can use a dash or underscore.

Thanks to Jason Boyle for his adaption.


  1. Peter

    May 16, 2009

    If you’re just trying to make the string into a valid URL candidate, urlencode() might be a better choice- that way you don’t have to worry about other characters in your title (colons, commas, punctuation, etc).

    Peter´s last blog post..How to Hide Certain Custom Fields From the Edit Post Page

  2. Peter Kahoun

    May 16, 2009

    There is as “urlencode()” php function for this purpose.

  3. Austin

    May 16, 2009

    Thanks for that!

  4. Matt

    August 16, 2009

    Brilliant stuff, thanks!