Summery Summery
Outputs the settings form for the Navigation Menu widget.
Syntax Syntax
Parameters Parameters
- $instance
-
(Required) Current settings.
Source Source
File: wp-includes/widgets/class-wp-nav-menu-widget.php
*
* @since 3.0.0
*
* @param array $new_instance New settings for this instance as input by the user via
* WP_Widget::form().
* @param array $old_instance Old settings for this instance.
* @return array Updated settings to save.
*/
public function update( $new_instance, $old_instance ) {
$instance = array();
if ( ! empty( $new_instance['title'] ) ) {
$instance['title'] = sanitize_text_field( $new_instance['title'] );
}
if ( ! empty( $new_instance['nav_menu'] ) ) {
$instance['nav_menu'] = (int) $new_instance['nav_menu'];
}
return $instance;
}
/**
* Outputs the settings form for the Navigation Menu widget.
*
* @since 3.0.0
*
* @param array $instance Current settings.
* @global WP_Customize_Manager $wp_customize
*/
public function form( $instance ) {
global $wp_customize;
$title = isset( $instance['title'] ) ? $instance['title'] : '';
$nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
// Get menus.
$menus = wp_get_nav_menus();
$empty_menus_style = '';
$not_empty_menus_style = '';
if ( empty( $menus ) ) {
$empty_menus_style = ' style="display:none" ';
} else {
$not_empty_menus_style = ' style="display:none" ';
}
$nav_menu_style = '';
if ( ! $nav_menu ) {
$nav_menu_style = 'display: none;';
}
// If no menus exists, direct the user to go and create some.
?>
<p class="nav-menu-widget-no-menus-message" <?php echo $not_empty_menus_style; ?>>
<?php
if ( $wp_customize instanceof WP_Customize_Manager ) {
$url = 'javascript: wp.customize.panel( "nav_menus" ).focus();';
} else {
$url = admin_url( 'nav-menus.php' );
}
/* translators: %s: URL to create a new menu. */
Advertisement
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |