the_title_attribute( string|array $args = '' )

Sanitize the current title when retrieving or displaying.

Description

Works like the_title(), except the parameters can be in a string or an array. See the function for what can be override in the $args parameter.

The title before it is displayed will have the tags stripped and esc_attr() before it is passed to the user or displayed. The default as with the_title(), is to display the title.

Parameters

$args

(string|array) (Optional) Title attribute arguments. Optional.

  • 'before'
    (string) Markup to prepend to the title.
  • 'after'
    (string) Markup to append to the title.
  • 'echo'
    (bool) Whether to echo or return the title. Default true for echo.
  • 'post'
    (WP_Post) Current post object to retrieve the title for.

Default value: ''

Return

(void|string) Void if 'echo' argument is true, the title attribute if 'echo' is false.

Source

File: wp-includes/post-template.php

function the_title_attribute( $args = '' ) {
	$defaults    = array(
		'before' => '',
		'after'  => '',
		'echo'   => true,
		'post'   => get_post(),
	);
	$parsed_args = wp_parse_args( $args, $defaults );

	$title = get_the_title( $parsed_args['post'] );

	if ( strlen( $title ) == 0 ) {
		return;
	}

	$title = $parsed_args['before'] . $title . $parsed_args['after'];
	$title = esc_attr( strip_tags( $title ) );

	if ( $parsed_args['echo'] ) {
		echo $title;
	} else {
		return $title;
	}
}

Changelog

Version Description
2.3.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/the_title_attribute