WP_Customize_Nav_Menu_Item_Setting::__construct() WordPress Method

The WP_Customize_Nav_Menu_Item_Setting::__construct() method is used to create a new customizer setting for a navigation menu item.

WP_Customize_Nav_Menu_Item_Setting::__construct( WP_Customize_Manager $manager, string $id, array $args = array() ) #

Constructor.


Description

Any supplied $args override class property defaults.


Top ↑

Parameters

$manager

(WP_Customize_Manager)(Required)Customizer bootstrap instance.

$id

(string)(Required)A specific ID of the setting. Can be a theme mod or option name.

$args

(array)(Optional) Setting arguments.

Default value: array()


Top ↑

Source

File: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php

	public function __construct( WP_Customize_Manager $manager, $id, array $args = array() ) {
		if ( empty( $manager->nav_menus ) ) {
			throw new Exception( 'Expected WP_Customize_Manager::$nav_menus to be set.' );
		}

		if ( ! preg_match( self::ID_PATTERN, $id, $matches ) ) {
			throw new Exception( "Illegal widget setting ID: $id" );
		}

		$this->post_id = (int) $matches['id'];
		add_action( 'wp_update_nav_menu_item', array( $this, 'flush_cached_value' ), 10, 2 );

		parent::__construct( $manager, $id, $args );

		// Ensure that an initially-supplied value is valid.
		if ( isset( $this->value ) ) {
			$this->populate_value();
			foreach ( array_diff( array_keys( $this->default ), array_keys( $this->value ) ) as $missing ) {
				throw new Exception( "Supplied nav_menu_item value missing property: $missing" );
			}
		}

	}


Top ↑

Changelog

Changelog
VersionDescription
4.3.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.