wppaste
WordPress

WP_Customize_Nav_Menu_Location_Control

Since
4.3.0
Source
wp-includes/customize/class-wp-customize-nav-menu-location-control.php:19
Customize Menu Location Control Class.

Description

This custom control is only needed for JS.

Compatibility

WordPress
since 4.3.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Properties · 2

$typestringpublic
Control type.
$location_idstringpublic
Location ID.

Methods · 2

  • to_json()Refresh the parameters passed to JavaScript via JSON.
  • render_content()Render content just like a normal select control.

Source code

class WP_Customize_Nav_Menu_Location_Control extends WP_Customize_Control { 	/**	 * Control type.	 *	 * @since 4.3.0	 * @var string	 */	public $type = 'nav_menu_location'; 	/**	 * Location ID.	 *	 * @since 4.3.0	 * @var string	 */	public $location_id = ''; 	/**	 * Refresh the parameters passed to JavaScript via JSON.	 *	 * @since 4.3.0	 *	 * @see WP_Customize_Control::to_json()	 */	public function to_json() {		parent::to_json();		$this->json['locationId'] = $this->location_id;	} 	/**	 * Render content just like a normal select control.	 *	 * @since 4.3.0	 * @since 4.9.0 Added a button to create menus.	 */	public function render_content() {		if ( empty( $this->choices ) ) {			return;		} 		$value_hidden_class    = '';		$no_value_hidden_class = '';		if ( $this->value() ) {			$value_hidden_class = ' hidden';		} else {			$no_value_hidden_class = ' hidden';		}		?>		<label>			<?php if ( ! empty( $this->label ) ) : ?>			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>			<?php endif; ?> 			<?php if ( ! empty( $this->description ) ) : ?>			<span class="description customize-control-description"><?php echo $this->description; ?></span>			<?php endif; ?> 			<select <?php $this->link(); ?>>				<?php				foreach ( $this->choices as $value => $label ) :					echo '<option value="' . esc_attr( $value ) . '"' . selected( $this->value(), $value, false ) . '>' . esc_html( $label ) . '</option>';				endforeach;				?>			</select>		</label>		<button type="button" class="button-link create-menu<?php echo $value_hidden_class; ?>" data-location-id="<?php echo esc_attr( $this->location_id ); ?>" aria-label="<?php esc_attr_e( 'Create a menu for this location' ); ?>"><?php _e( '+ Create New Menu' ); ?></button>		<button type="button" class="button-link edit-menu<?php echo $no_value_hidden_class; ?>" aria-label="<?php esc_attr_e( 'Edit selected menu' ); ?>"><?php _e( 'Edit Menu' ); ?></button>		<?php	}}

Changelog

Introduced in 4.3.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.8.8 tag, from src/wp-includes/customize/class-wp-customize-nav-menu-location-control.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.