available_item_types() public method

Return an array of all the available item types.
Since: 4.3.0
Since: 4.7.0 Each array item now includes a `$type_label` in in addition to `$title`, `$type`, and `$object`.
public available_item_types ( ) : array
return array The available menu item types.
Example #1
0
 /**
  * Test the available_item_types method.
  *
  * @see WP_Customize_Nav_Menus::available_item_types()
  */
 function test_available_item_types()
 {
     $menus = new WP_Customize_Nav_Menus($this->wp_customize);
     $expected = array(array('title' => 'Posts', 'type' => 'post_type', 'object' => 'post', 'type_label' => __('Post')), array('title' => 'Pages', 'type' => 'post_type', 'object' => 'page', 'type_label' => __('Page')), array('title' => 'Categories', 'type' => 'taxonomy', 'object' => 'category', 'type_label' => __('Category')), array('title' => 'Tags', 'type' => 'taxonomy', 'object' => 'post_tag', 'type_label' => __('Tag')));
     if (current_theme_supports('post-formats')) {
         $expected[] = array('title' => 'Format', 'type' => 'taxonomy', 'object' => 'post_format', 'type_label' => __('Format'));
     }
     $this->assertEquals($expected, $menus->available_item_types());
     register_taxonomy('wptests_tax', array('post'), array('labels' => array('name' => 'Foo')));
     $expected[] = array('title' => 'Foo', 'type' => 'taxonomy', 'object' => 'wptests_tax', 'type_label' => 'Foo');
     $this->assertEquals($expected, $menus->available_item_types());
     $expected[] = array('title' => 'Custom', 'type' => 'custom_type', 'object' => 'custom_object', 'type_label' => 'Custom Type');
     add_filter('customize_nav_menu_available_item_types', array($this, 'filter_item_types'));
     $this->assertEquals($expected, $menus->available_item_types());
     remove_filter('customize_nav_menu_available_item_types', array($this, 'filter_item_types'));
 }
Example #2
0
 /**
  * Test the available_item_types method.
  *
  * @see WP_Customize_Nav_Menus::available_item_types()
  */
 function test_available_item_types()
 {
     $menus = new WP_Customize_Nav_Menus($this->wp_customize);
     $expected = array('postTypes' => array('post' => array('label' => 'Post'), 'page' => array('label' => 'Page')), 'taxonomies' => array('category' => array('label' => 'Category'), 'post_tag' => array('label' => 'Tag')));
     if (current_theme_supports('post-formats')) {
         $expected['taxonomies']['post_format'] = array('label' => 'Format');
     }
     $this->assertEquals($expected, $menus->available_item_types());
     register_taxonomy('wptests_tax', array('post'), array('labels' => array('name' => 'Foo')));
     $expected = array('postTypes' => array('post' => array('label' => 'Post'), 'page' => array('label' => 'Page')), 'taxonomies' => array('category' => array('label' => 'Category'), 'post_tag' => array('label' => 'Tag'), 'wptests_tax' => array('label' => 'Foo')));
     if (current_theme_supports('post-formats')) {
         $wptests_tax = array_pop($expected['taxonomies']);
         $expected['taxonomies']['post_format'] = array('label' => 'Format');
         $expected['taxonomies']['wptests_tax'] = $wptests_tax;
     }
     $this->assertEquals($expected, $menus->available_item_types());
 }