diff --git a/includes/wp-api-menus-v2.php b/includes/wp-api-menus-v2.php index ae7c82e..62bab1d 100644 --- a/includes/wp-api-menus-v2.php +++ b/includes/wp-api-menus-v2.php @@ -356,7 +356,6 @@ public function get_nav_menu_item_children( $parent_id, $nav_menu_items, $depth return $nav_menu_item_list; } - /** * Format a menu item for REST API consumption. * @@ -370,6 +369,21 @@ public function format_menu_item( $menu_item, $children = false, $menu = array() $item = (array) $menu_item; + //categories, tags, etc ... + if($item['type'] === 'taxonomy') + { + $object_slug = get_term($item['object_id'], $item['object'])->slug; + } + //archive + else if($item['type'] === 'post_type_archive'){ + $object_slug = get_post_type_object( $item['object'] )->rewrite['slug']; + } + else{ + // post_type, page, etc ... + $object_slug = get_post( $item['object_id'] )->post_name; + } + + $menu_item = array( 'id' => abs( $item['ID'] ), 'order' => (int) $item['menu_order'], @@ -383,7 +397,7 @@ public function format_menu_item( $menu_item, $children = false, $menu = array() 'description' => $item['description'], 'object_id' => abs( $item['object_id'] ), 'object' => $item['object'], - 'object_slug' => get_post( $item['object_id'] )->post_name, + 'object_slug' => $object_slug, 'type' => $item['type'], 'type_label' => $item['type_label'], ); @@ -395,6 +409,8 @@ public function format_menu_item( $menu_item, $children = false, $menu = array() return apply_filters( 'rest_menus_format_menu_item', $menu_item ); } + + }