the_title( string $before = '', string $after = '', bool $echo = true )

Displays or retrieves the current post title with optional markup.



(string) (Optional) Markup to prepend to the title.

Default value: ''


(string) (Optional) Markup to append to the title.

Default value: ''


(bool) (Optional) Whether to echo or return the title. Default true for echo.

Default value: true

Top ↑


(void|string) Void if $echo argument is true, current post title if $echo is false.

Top ↑

More Information

This function displays or returns the unescaped title of the current post. This tag may only be used within The Loop, to get the title of a post outside of the loop use get_the_title. If the post is protected or private, this will be noted by the words “Protected: ” or “Private: ” prepended to the title.

Security considerations

Like the_content() , the output of the_title() is unescaped. This is considered a feature and not a bug, see the FAQ “Why are some users allowed to post unfiltered HTML?” . If the post title is <script>alert("test");</script>, then that JavaScript code will be run wherever the_title() is used. For this reason, do not write code that allows untrusted users to create post titles.

Top ↑


File: wp-includes/post-template.php

function the_title( $before = '', $after = '', $echo = true ) {
	$title = get_the_title();

	if ( strlen( $title ) == 0 ) {

	$title = $before . $title . $after;

	if ( $echo ) {
		echo $title;
	} else {
		return $title;

Top ↑


Version Description
0.71 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.