diff --git a/core/um-navmenu-walker-edit.php b/core/um-navmenu-walker-edit.php index 481028c9..ffb154e2 100644 --- a/core/um-navmenu-walker-edit.php +++ b/core/um-navmenu-walker-edit.php @@ -9,7 +9,7 @@ class UM_Menu_Item_Custom_Fields_Editor { * Initialize plugin */ public static function init() { - add_action( 'wp_nav_menu_item_custom_fields', array( __CLASS__, '_fields' ), 10, 4 ); + add_action( 'wp_nav_menu_item_custom_fields', array( __CLASS__, '_fields' ), 1, 4 ); add_action( 'wp_update_nav_menu_item', array( __CLASS__, '_save' ), 10, 3 ); add_filter( 'manage_nav-menus_columns', array( __CLASS__, '_columns' ), 99 ); diff --git a/core/um-navmenu-walker.php b/core/um-navmenu-walker.php index 1850be8b..8ce0d413 100644 --- a/core/um-navmenu-walker.php +++ b/core/um-navmenu-walker.php @@ -5,18 +5,21 @@ class UM_Menu_Item_Custom_Fields_Walker extends Walker_Nav_Menu_Edit { function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $item_output = ''; parent::start_el( $item_output, $item, $depth, $args, $id ); - $output .= preg_replace( - // NOTE: Check this regex from time to time! - '/(?=]+class="[^"]*field-move)/', - $this->get_fields( $item, $depth, $args ), - $item_output - ); + + if( $new_fields = $this->get_fields( $item, $depth, $args, $id ) ){ + $item_output = preg_replace('/(?=]+class="[^"]*submitbox)/', $new_fields, $item_output); + } + + $output .= $item_output; + } protected function get_fields( $item, $depth, $args = array(), $id = 0 ) { ob_start(); - $id = esc_attr( $item->ID ); + if( isset( $item->ID ) ){ + $id = esc_attr( $item->ID ); + } do_action( 'wp_nav_menu_item_custom_fields', $id, $item, $depth, $args );