WordPress Version: 5.9
/**
* Returns a navigation link variation
*
* @param WP_Taxonomy|WP_Post_Type $entity post type or taxonomy entity.
* @param string $kind string of value 'taxonomy' or 'post-type'.
*
* @return array
*/
function build_variation_for_navigation_link($entity, $kind)
{
$title = '';
$description = '';
if (property_exists($entity->labels, 'item_link')) {
$title = $entity->labels->item_link;
}
if (property_exists($entity->labels, 'item_link_description')) {
$description = $entity->labels->item_link_description;
}
$variation = array('name' => $entity->name, 'title' => $title, 'description' => $description, 'attributes' => array('type' => $entity->name, 'kind' => $kind));
// Tweak some value for the variations.
$variation_overrides = array('post_tag' => array('name' => 'tag', 'attributes' => array('type' => 'tag', 'kind' => $kind)), 'post_format' => array(
// The item_link and item_link_description for post formats is the
// same as for tags, so need to be overridden.
'title' => __('Post Format Link'),
'description' => __('A link to a post format'),
'attributes' => array('type' => 'post_format', 'kind' => $kind),
));
if (array_key_exists($entity->name, $variation_overrides)) {
$variation = array_merge($variation, $variation_overrides[$entity->name]);
}
return $variation;
}