Make WordPress Core

Ticket #41081: 41081-custom-menu-widget-empty-notice.patch

File 41081-custom-menu-widget-empty-notice.patch, 1.2 KB (added by sachinrajcp123, 3 months ago)
  • wp-includes/widgets/class-wp-nav-menu-widget.php

    diff --git a/wp-includes/widgets/class-wp-nav-menu-widget.php b/wp-includes/widgets/class-wp-nav-menu-widget.php
    index 9c3e8d2..b41e9aa 100644
    a b class WP_Nav_Menu_Widget extends WP_Widget { 
    153153
    154154                $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
    155155
     156                // Show notice if no menu is selected or menu is empty (admins only).
     157                if ( ! $nav_menu || ! wp_get_nav_menu_items( $nav_menu->term_id ) ) {
     158                        if ( current_user_can( 'edit_theme_options' ) ) {
     159                                echo $args['before_widget'];
     160
     161                                if ( ! empty( $instance['title'] ) ) {
     162                                        echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
     163                                }
     164
     165                                echo '<p class="nav-menu-widget-notice">' .
     166                                        esc_html__( 'Please select a menu or add items to the selected menu.', 'default' ) .
     167                                        '</p>';
     168
     169                                echo $args['after_widget'];
     170                        }
     171                        return;
     172                }
     173
    156174                /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
    157175                $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );