Fix menu settings compatibility issue

This commit is contained in:
Champ Camba
2016-12-07 22:47:48 +08:00
parent 312dbb6e41
commit 03dabaf7b7
2 changed files with 11 additions and 8 deletions
+1 -1
View File
@@ -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 );
+10 -7
View File
@@ -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!
'/(?=<p[^>]+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('/(?=<div[^>]+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 );