WP_Customize_Nav_Menu_Item_Setting::value()
Get the instance data for a given nav_menu_item setting.
Description
See also
Return
(array|false) Instance data array, or false if the item is marked for deletion.
Source
File: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
public function value() {
if ( $this->is_previewed && $this->_previewed_blog_id === get_current_blog_id() ) {
$undefined = new stdClass(); // Symbol.
$post_value = $this->post_value( $undefined );
if ( $undefined === $post_value ) {
$value = $this->_original_value;
} else {
$value = $post_value;
}
if ( ! empty( $value ) && empty( $value['original_title'] ) ) {
$value['original_title'] = $this->get_original_title( (object) $value );
}
} elseif ( isset( $this->value ) ) {
$value = $this->value;
} else {
$value = false;
// Note that a ID of less than one indicates a nav_menu not yet inserted.
if ( $this->post_id > 0 ) {
$post = get_post( $this->post_id );
if ( $post && self::POST_TYPE === $post->post_type ) {
$is_title_empty = empty( $post->post_title );
$value = (array) wp_setup_nav_menu_item( $post );
if ( $is_title_empty ) {
$value['title'] = '';
}
}
}
if ( ! is_array( $value ) ) {
$value = $this->default;
}
// Cache the value for future calls to avoid having to re-call wp_setup_nav_menu_item().
$this->value = $value;
$this->populate_value();
$value = $this->value;
}
if ( ! empty( $value ) && empty( $value['type_label'] ) ) {
$value['type_label'] = $this->get_type_label( (object) $value );
}
return $value;
}
Changelog
Version | Description |
---|---|
WP-4.3.0 | Introduced. |