Get title of post without using the_title();

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 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.

Edit

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()

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

Using the_title filter

<?php
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' );
?>

Leave a Comment