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
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:
- Use
get_the_title()
to return, rather than echo, the post title - 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' );
?>