Source
File: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
public function preview() {
if ( $this->is_previewed ) {
return false;
}
$undefined = new stdClass();
$is_placeholder = ( $this->post_id < 0 );
$is_dirty = ( $undefined !== $this->post_value( $undefined ) );
if ( ! $is_placeholder && ! $is_dirty ) {
return false;
}
$this->is_previewed = true;
$this->_original_value = $this->value();
$this->original_nav_menu_term_id = $this->_original_value['nav_menu_term_id'];
$this->_previewed_blog_id = get_current_blog_id();
add_filter( 'wp_get_nav_menu_items', array( $this, 'filter_wp_get_nav_menu_items' ), 10, 3 );
$sort_callback = array( __CLASS__, 'sort_wp_get_nav_menu_items' );
if ( ! has_filter( 'wp_get_nav_menu_items', $sort_callback ) ) {
add_filter( 'wp_get_nav_menu_items', array( __CLASS__, 'sort_wp_get_nav_menu_items' ), 1000, 3 );
}
// @todo Add get_post_metadata filters for plugins to add their data.
return true;
}