render_block_core_query_title()
Renders the core/query-title block on the server. For now it supports Archive title, Search title, and Post Type Label, using queried object information
No Hooks.
Returns
String. Returns the query title based on the queried object.
Usage
render_block_core_query_title( $attributes, $content, $block );
- $attributes(array) (required)
- Block attributes.
- $content(required)
- .
- $block(object) (required)
- Block instance.
Changelog
| Since 5.8.0 | Introduced. |
render_block_core_query_title() render block core query title code WP 6.9.1
function render_block_core_query_title( $attributes, $content, $block ) {
$type = isset( $attributes['type'] ) ? $attributes['type'] : null;
$is_archive = is_archive();
$is_search = is_search();
$post_type = isset( $block->context['query']['postType'] ) ? $block->context['query']['postType'] : get_post_type();
if ( ! $type ||
( 'archive' === $type && ! $is_archive ) ||
( 'search' === $type && ! $is_search ) ||
( 'post-type' === $type && ! $post_type )
) {
return '';
}
$title = '';
if ( $is_archive ) {
$show_prefix = isset( $attributes['showPrefix'] ) ? $attributes['showPrefix'] : true;
if ( ! $show_prefix ) {
add_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 );
$title = get_the_archive_title();
remove_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 );
} else {
$title = get_the_archive_title();
}
}
if ( $is_search ) {
$title = __( 'Search results' );
if ( isset( $attributes['showSearchTerm'] ) && $attributes['showSearchTerm'] ) {
$title = sprintf(
/* translators: %s is the search term. */
__( 'Search results for: "%s"' ),
get_search_query()
);
}
}
if ( 'post-type' === $type ) {
$post_type_object = get_post_type_object( $post_type );
if ( ! $post_type_object ) {
return '';
}
$post_type_name = $post_type_object->labels->singular_name;
$show_prefix = isset( $attributes['showPrefix'] ) ? $attributes['showPrefix'] : true;
if ( $show_prefix ) {
$title = sprintf(
/* translators: %s is the post type name. */
__( 'Post Type: "%s"' ),
$post_type_name
);
} else {
$title = $post_type_name;
}
}
$level = isset( $attributes['level'] ) ? (int) $attributes['level'] : 1;
$tag_name = 0 === $level ? 'p' : 'h' . (int) $attributes['level'];
$align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) );
return sprintf(
'<%1$s %2$s>%3$s</%1$s>',
$tag_name,
$wrapper_attributes,
$title
);
}