Sanitize the current title when retrieving or displaying.

Works like {@link 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 {@link esc_attr()} before it is passed to the user or displayed. The default as with {@link the_title()}, is to display the title.

Signature

the_title_attribute( $args = '' )
args
 (string|array) Title attribute arguments. Optional.
Default: ''

Return

(string|null) Null on failure or display. String when echo is false.

Source

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

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

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

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

	if ( $r['echo'] ) {
		echo $title;
	} else {
		return $title;
	}
}
WP Trac GitHub

Link here