2015-10-24 20:57:25 +02:00
< ? 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
2017-10-18 16:51:47 +02:00
* @ since 4.9 . 0 Added a button to create menus .
2015-10-24 20:57:25 +02:00
*/
public function render_content () {
if ( empty ( $this -> choices ) ) {
return ;
}
2017-11-23 05:09:49 +01:00
2019-07-03 01:42:58 +02:00
$value_hidden_class = '' ;
$no_value_hidden_class = '' ;
2017-11-23 05:09:49 +01:00
if ( $this -> value () ) {
$value_hidden_class = ' hidden' ;
} else {
$no_value_hidden_class = ' hidden' ;
}
2015-10-24 20:57:25 +02:00
?>
< 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 >
2017-11-23 05:09:49 +01:00
< 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>
2015-10-24 20:57:25 +02:00
< ? php
}
}