diff --git a/src/wp-admin/includes/nav-menu.php b/src/wp-admin/includes/nav-menu.php
index 53eaec0218..d8947d86ee 100644
--- a/src/wp-admin/includes/nav-menu.php
+++ b/src/wp-admin/includes/nav-menu.php
@@ -937,17 +937,17 @@ function wp_get_nav_menu_to_edit( $menu_id = 0 ) {
*
* @since 3.0.0
*
- * @return string|WP_Error $output The menu formatted to edit or error object on failure.
+ * @return array Columns.
*/
function wp_nav_menu_manage_columns() {
return array(
- '_title' => __('Show advanced menu properties'),
- 'cb' => '',
- 'title-attribute' => __('Title Attribute'),
- 'link-target' => __('Link Target'),
- 'css-classes' => __('CSS Classes'),
- 'xfn' => __('Link Relationship (XFN)'),
- 'description' => __('Description'),
+ '_title' => __( 'Show advanced menu properties' ),
+ 'cb' => '',
+ 'link-target' => __( 'Link Target' ),
+ 'attr-title' => __( 'Title Attribute' ),
+ 'css-classes' => __( 'CSS Classes' ),
+ 'xfn' => __( 'Link Relationship (XFN)' ),
+ 'description' => __( 'Description' ),
);
}
diff --git a/src/wp-admin/js/customize-nav-menus.js b/src/wp-admin/js/customize-nav-menus.js
index cad39c64ad..7f0925336b 100644
--- a/src/wp-admin/js/customize-nav-menus.js
+++ b/src/wp-admin/js/customize-nav-menus.js
@@ -218,7 +218,7 @@
.prop( 'tabIndex', -1 )
.removeClass( 'is-visible' );
}
-
+
this.searchTerm = event.target.value;
this.pages.search = 1;
this.doSearch( 1 );
@@ -614,15 +614,21 @@
});
},
- saveManageColumnsState: function() {
- var hidden = this.hidden();
- $.post( wp.ajax.settings.url, {
- action: 'hidden-columns',
- hidden: hidden,
+ saveManageColumnsState: _.debounce( function() {
+ var panel = this;
+ if ( panel._updateHiddenColumnsRequest ) {
+ panel._updateHiddenColumnsRequest.abort();
+ }
+
+ panel._updateHiddenColumnsRequest = wp.ajax.post( 'hidden-columns', {
+ hidden: panel.hidden(),
screenoptionnonce: $( '#screenoptionnonce' ).val(),
page: 'nav-menus'
- });
- },
+ } );
+ panel._updateHiddenColumnsRequest.always( function() {
+ panel._updateHiddenColumnsRequest = null;
+ } );
+ }, 2000 ),
checked: function( column ) {
this.container.addClass( 'field-' + column + '-active' );
@@ -633,12 +639,10 @@
},
hidden: function() {
- this.hidden = function() {
- return $( '.hide-column-tog' ).not( ':checked' ).map( function() {
- var id = this.id;
- return id.substring( id, id.length - 5 );
- }).get().join( ',' );
- };
+ return $( '.hide-column-tog' ).not( ':checked' ).map( function() {
+ var id = this.id;
+ return id.substring( 0, id.length - 5 );
+ }).get().join( ',' );
}
} );
diff --git a/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php b/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php
index b581d56f1f..adb19ee390 100644
--- a/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php
+++ b/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php
@@ -34,8 +34,9 @@ class WP_Customize_Nav_Menus_Panel extends WP_Customize_Panel {
* @access public
*/
public function render_screen_options() {
- // Essentially adds the screen options.
- add_filter( 'manage_nav-menus_columns', array( $this, 'wp_nav_menu_manage_columns' ) );
+ // Adds the screen options.
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+ add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );
// Display screen options.
$screen = WP_Screen::get( 'nav-menus.php' );
@@ -48,20 +49,12 @@ class WP_Customize_Nav_Menus_Panel extends WP_Customize_Panel {
* Link title attribute added as it's a relatively advanced concept for new users.
*
* @since 4.3.0
- * @access public
- *
- * @return array The advanced menu properties.
+ * @deprecated 4.5.0 Deprecated in favor of wp_nav_menu_manage_columns().
*/
public function wp_nav_menu_manage_columns() {
- return array(
- '_title' => __( 'Show advanced menu properties' ),
- 'cb' => '',
- 'link-target' => __( 'Link Target' ),
- 'attr-title' => __( 'Title Attribute' ),
- 'css-classes' => __( 'CSS Classes' ),
- 'xfn' => __( 'Link Relationship (XFN)' ),
- 'description' => __( 'Description' ),
- );
+ _deprecated_function( __METHOD__, '4.5.0', 'wp_nav_menu_manage_columns' );
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+ return wp_nav_menu_manage_columns();
}
/**