WordPress Version: 6.5
/**
* Returns the available variations for the `core/post-terms` block.
*
* @return array The available variations for the block.
*/
function block_core_post_terms_build_variations()
{
$taxonomies = get_taxonomies(array('publicly_queryable' => true, 'show_in_rest' => true), 'objects');
// Split the available taxonomies to `built_in` and custom ones,
// in order to prioritize the `built_in` taxonomies at the
// search results.
$built_ins = array();
$custom_variations = array();
// Create and register the eligible taxonomies variations.
foreach ($taxonomies as $taxonomy) {
$variation = array('name' => $taxonomy->name, 'title' => $taxonomy->label, 'description' => sprintf(
/* translators: %s: taxonomy's label */
__('Display a list of assigned terms from the taxonomy: %s'),
$taxonomy->label
), 'attributes' => array('term' => $taxonomy->name), 'isActive' => array('term'), 'scope' => array('inserter', 'transform'));
// Set the category variation as the default one.
if ('category' === $taxonomy->name) {
$variation['isDefault'] = true;
}
if ($taxonomy->_builtin) {
$built_ins[] = $variation;
} else {
$custom_variations[] = $variation;
}
}
return array_merge($built_ins, $custom_variations);
}