block_core_navigation_link_build_variations

The timeline below displays how wordpress function block_core_navigation_link_build_variations has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Returns an array of variations for the navigation link block.
 *
 * @since 6.5.0
 *
 * @return array
 */
function block_core_navigation_link_build_variations()
{
    $post_types = get_post_types(array('show_in_nav_menus' => true), 'objects');
    $taxonomies = get_taxonomies(array('show_in_nav_menus' => true), 'objects');
    /*
     * Use two separate arrays as a way to order the variations in the UI.
     * Known variations (like Post Link and Page Link) are added to the
     * `built_ins` array. Variations for custom post types and taxonomies are
     * added to the `variations` array and will always appear after `built-ins.
     */
    $built_ins = array();
    $variations = array();
    if ($post_types) {
        foreach ($post_types as $post_type) {
            $variation = build_variation_for_navigation_link($post_type, 'post-type');
            if ($post_type->_builtin) {
                $built_ins[] = $variation;
            } else {
                $variations[] = $variation;
            }
        }
    }
    if ($taxonomies) {
        foreach ($taxonomies as $taxonomy) {
            $variation = build_variation_for_navigation_link($taxonomy, 'taxonomy');
            if ($taxonomy->_builtin) {
                $built_ins[] = $variation;
            } else {
                $variations[] = $variation;
            }
        }
    }
    return array_merge($built_ins, $variations);
}