4

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. :) – Chip Bennett Apr 10 '12 at 17:04
6

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' );
?>
  • Awesome, exactly what I needed. I understand how it works now. Thanks! – Romes Apr 10 '12 at 17:00

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.