Noob question. Is there another way of getting a posts title without using the_title();

I'm asking because I am using a function the take a string parameter, then after some code, returns this string. When I pass in the_title(); as this parameter, for some reason it isn't coming in as a string, therefore, the method fails.

When I pass in "some random string" instead of the_title(); the function works properly.

Make sense?

  • 1
    This might be the fasted three-answer question in the history of WPSE. :) Commented Apr 10, 2012 at 17:04

1 Answer 1


This is because the_title() echos the post title (see the linked documentation). Use get_the_title() instead which returns the title as a string.


You have two options:

  1. Use get_the_title() to return, rather than echo, the post title
  2. Filter the_title to echo a custom string as the post title

Using get_the_title()

// NOTE: Inside the Loop,
// or else pass $post->ID
// as a parameter
$post_title = get_the_title();

Using the_title filter

function wpse48523_filter_the_title( $title ) {
    // Modify or replace $title
    // then return the result
    // For example, to replace,
    // simply return your own value:
    // return 'SOME CUSTOM STRING';
    // Or, you can append the original title
    // return $title . 'SOME CUSTOM STRING'
    // Just be sure to return *something*
    return $title . ' appended string';
add_filter( 'the_title', 'wpse48523_filter_the_title' );
  • Awesome, exactly what I needed. I understand how it works now. Thanks!
    – Romes
    Commented Apr 10, 2012 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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