the_title_attribute( string|array $args =  ): void|string

Sanitizes 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

$argsstring|arrayoptional
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:''

Return

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

Source

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

VersionDescription
2.3.0Introduced.

User Contributed Notes

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