WP_Customize_Nav_Menus::available_item_types()

Return an array of all the available item types.


Return

(array) The available menu item types.


Source

File: wp-includes/class-wp-customize-nav-menus.php

	public function available_item_types() {
		$item_types = array();

		$post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' );
		if ( $post_types ) {
			foreach ( $post_types as $slug => $post_type ) {
				$item_types[] = array(
					'title'  => $post_type->labels->name,
					'type_label' => $post_type->labels->singular_name,
					'type' => 'post_type',
					'object' => $post_type->name,
				);
			}
		}

		$taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'objects' );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $slug => $taxonomy ) {
				if ( 'post_format' === $taxonomy && ! current_theme_supports( 'post-formats' ) ) {
					continue;
				}
				$item_types[] = array(
					'title' => $taxonomy->labels->name,
					'type_label' => $taxonomy->labels->singular_name,
					'type' => 'taxonomy',
					'object' => $taxonomy->name,
				);
			}
		}

		/**
		 * Filters the available menu item types.
		 *
		 * @since WP-4.3.0
		 * @since WP-4.7.0  Each array item now includes a `$type_label` in addition to `$title`, `$type`, and `$object`.
		 *
		 * @param array $item_types Navigation menu item types.
		 */
		$item_types = apply_filters( 'customize_nav_menu_available_item_types', $item_types );

		return $item_types;
	}


Changelog

Changelog
Version Description
WP-4.7.0 Each array item now includes a $type_label in addition to $title, $type, and $object.
WP-4.3.0 Introduced.