WordPress Version: 1.1
/**
* Builds the title and description of a taxonomy-specific template based on the underlying entity referenced.
*
* Mutates the underlying template object.
*
* @since 6.1.0
* @access private
*
* @param string $taxonomy Identifier of the taxonomy, e.g. category.
* @param string $slug Slug of the term, e.g. shoes.
* @param WP_Block_Template $template Template to mutate adding the description and title computed.
* @return bool True if the term referenced was found and false otherwise.
*/
function _wp_build_title_and_description_for_taxonomy_block_template($taxonomy, $slug, WP_Block_Template $template)
{
$taxonomy_object = get_taxonomy($taxonomy);
$default_args = array('taxonomy' => $taxonomy, 'hide_empty' => false, 'update_term_meta_cache' => false);
$term_query = new WP_Term_Query();
$args = array('number' => 1, 'slug' => $slug);
$args = wp_parse_args($args, $default_args);
$terms_query = $term_query->query($args);
if (empty($terms_query)) {
$template->title = sprintf(
/* translators: Custom template title in the Site Editor, referencing a taxonomy term that was not found. 1: Taxonomy singular name, 2: Term slug. */
__('Not found: %1$s (%2$s)'),
$taxonomy_object->labels->singular_name,
$slug
);
return false;
}
$term_title = $terms_query[0]->name;
$template->title = sprintf(
/* translators: Custom template title in the Site Editor. 1: Taxonomy singular name, 2: Term title. */
__('%1$s: %2$s'),
$taxonomy_object->labels->singular_name,
$term_title
);
$template->description = sprintf(
/* translators: Custom template description in the Site Editor. %s: Term title. */
__('Template for %s'),
$term_title
);
$term_query = new WP_Term_Query();
$args = array('number' => 2, 'name' => $term_title);
$args = wp_parse_args($args, $default_args);
$terms_with_same_title_query = $term_query->query($args);
if (count($terms_with_same_title_query) > 1) {
$template->title = sprintf(
/* translators: Custom template title in the Site Editor. 1: Template title, 2: Term slug. */
__('%1$s (%2$s)'),
$template->title,
$slug
);
}
return true;
}