1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Customize API: WP_Customize_Nav_Menu_Location_Control class
- *
- * @package WordPress
- * @subpackage Customize
- * @since 4.4.0
- */
- /**
- * Customize Menu Location Control Class.
- *
- * This custom control is only needed for JS.
- *
- * @since 4.3.0
- *
- * @see WP_Customize_Control
- */
- 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 ) . '>' . $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
- }
- }
|