From 4cf237324a603d069ac659b59642dbe5467d9bd2 Mon Sep 17 00:00:00 2001 From: Lukas Kahwe Smith Date: Thu, 18 Feb 2016 13:09:07 +0100 Subject: [PATCH 1/3] do not modify urls --- menu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu.php b/menu.php index ffe5869..5c910d6 100644 --- a/menu.php +++ b/menu.php @@ -134,7 +134,7 @@ public function import_json( $file, $mode = 'append', $missing = 'skip', $defaul $item_array['menu-item-object-id'] = $term->term_id; $item_array['menu-item-title'] = ( $item_array['menu-item-title'] ) ?: $term->name; } elseif ( isset( $item->url ) ) { - $item_array['menu-item-url'] = ( 'http' == substr( $item->url, 0, 4 ) ) ? esc_url( $item->url ) : home_url( $item->url ); + $item_array['menu-item-url'] = $item->url; $item_array['menu-item-title'] = ( $item_array['menu-item-title'] ) ?: $item->url; } else { continue; From 14088fa62f95db7854d21326c31494db16bcdf5b Mon Sep 17 00:00:00 2001 From: Lukas Kahwe Smith Date: Thu, 18 Feb 2016 13:09:56 +0100 Subject: [PATCH 2/3] ensure that existing menu's are overwritten rather than appended into --- menu.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/menu.php b/menu.php index 5c910d6..f2a14a7 100644 --- a/menu.php +++ b/menu.php @@ -96,17 +96,10 @@ public function import_json( $file, $mode = 'append', $missing = 'skip', $defaul if ( isset( $menu->location ) && isset( $locations[ $menu->location ] ) ) : $menu_id = $locations[ $menu->location ]; elseif ( isset( $menu->name ) ) : - // If we can't find a menu by this name, create one. if ( $menu_object = wp_get_nav_menu_object( $menu->name ) ) : - $menu_id = $menu_object->term_id; - else : - $menu_object = wp_create_nav_menu( $menu->name ); - if ( isset( $menu_object->term_id ) ) { - $menu_id = $menu_object->term_id; - } else { - continue; - } + wp_delete_nav_menu($menu->name); endif; + $menu_id = wp_create_nav_menu( $menu->name ); else : // if no location or name is supplied, we have nowhere to put any additional info in this object. continue; endif; From 6e45a8eebcb2279605bf43e80379b0e583b25c22 Mon Sep 17 00:00:00 2001 From: Lukas Kahwe Smith Date: Thu, 18 Feb 2016 13:10:11 +0100 Subject: [PATCH 3/3] properly handle custom post types --- menu.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/menu.php b/menu.php index f2a14a7..2325d56 100644 --- a/menu.php +++ b/menu.php @@ -116,9 +116,9 @@ public function import_json( $file, $mode = 'append', $missing = 'skip', $defaul 'menu-item-status' => 'publish' ); - if ( isset( $item->page ) && $page = get_page_by_path( $item->page ) ) { // @todo support lookup by title + if ( isset( $item->page ) && $page = get_page_by_path( $item->page, OBJECT, $item->object ) ) { // @todo support lookup by title $item_array['menu-item-type'] = 'post_type'; - $item_array['menu-item-object'] = 'page'; + $item_array['menu-item-object'] = $item->object; $item_array['menu-item-object-id'] = $page->ID; $item_array['menu-item-title'] = ( $item_array['menu-item-title'] ) ?: $page->post_title; } elseif ( isset ( $item->taxonomy ) && isset( $item->term ) && $term = get_term_by( 'name', $item->term, $item->taxonomy ) ) { @@ -239,10 +239,9 @@ public function export_json( $file, $mode = 'relative' ) { $export_item['url'] = $item->url; break; case 'post_type': - if ( 'page' == $item->object ) { - $page = get_post( $item->object_id ); - $export_item['page'] = $page->post_name; - } + $page = get_post( $item->object_id ); + $export_item['page'] = $page->post_name; + $export_item['object'] = $item->object; break; case 'taxonomy': $term = get_term( $item->object_id, $item->object );