WordPress.org

Make WordPress Core

Ticket #41351: #41351.3.patch

File #41351.3.patch, 4.2 KB (added by jackjohansson, 3 years ago)

Third patch, includes resolving a PHP warning, created from 4.9-alpha-40870-src.

  • src/wp-admin/includes/nav-menu.php

    diff --git a/src/wp-admin/includes/nav-menu.php b/src/wp-admin/includes/nav-menu.php
    index a6aac33053..cb53add679 100644
    a b function _wp_ajax_menu_quick_search( $request = array() ) { 
    2626        $object_type = isset( $request['object_type'] ) ? $request['object_type'] : '';
    2727        $query = isset( $request['q'] ) ? $request['q'] : '';
    2828        $response_format = isset( $request['response-format'] ) && in_array( $request['response-format'], array( 'json', 'markup' ) ) ? $request['response-format'] : 'json';
     29        $hide_empty = ( isset( $_REQUEST['hide-empty'] ) && true == $_REQUEST['hide-empty'] ) ? false : true;
    2930
    3031        if ( 'markup' == $response_format ) {
    3132                $args['walker'] = new Walker_Nav_Menu_Checklist;
    function _wp_ajax_menu_quick_search( $request = array() ) { 
    109110                        $terms = get_terms( $matches[2], array(
    110111                                'name__like' => $query,
    111112                                'number' => 10,
     113                                'hide_empty' => $hide_empty,
    112114                        ));
    113115                        if ( empty( $terms ) || is_wp_error( $terms ) )
    114116                                return;
    function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) { 
    734736                        <?php
    735737                        if ( isset( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] ) ) {
    736738                                $searched = esc_attr( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] );
    737                                 $search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false ) );
     739                                $hide_empty = isset( $_REQUEST['quick-search-hide-empty-' . $taxonomy_name] ) ? false : true;
     740                                $search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false, 'hide_empty' => $hide_empty ) );
    738741                        } else {
    739742                                $searched = '';
    740743                                $search_results = array();
    function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) { 
    747750                                <?php submit_button( __( 'Search' ), 'small quick-search-submit hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
    748751                        </p>
    749752
     753                        <p>
     754                                <input type="checkbox" class="quick-search-hide-empty" checked="checked" name="quick-search-hide-empty-<?php echo $taxonomy_name; ?>" id="quick-search-hide-empty-<?php echo $taxonomy_name; ?>" />
     755                                <label for="quick-search-hide-empty-<?php echo $taxonomy_name; ?>"><?php printf( __( 'Include %s with no post' ), strtolower( $box['title'] ) ); ?></label>
     756                        </p>
     757
    750758                        <ul id="<?php echo $taxonomy_name; ?>-search-checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
    751759                        <?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
    752760                                <?php
  • src/wp-admin/js/nav-menu.js

    diff --git a/src/wp-admin/js/nav-menu.js b/src/wp-admin/js/nav-menu.js
    index bcce09a5dd..2f1eafa9ef 100644
    a b var wpNavMenu; 
    902902                        }).on( 'blur', '.quick-search', function() {
    903903                                api.lastSearch = '';
    904904                        });
     905
     906                        /*
     907                         * Update the quick search results when the user chooses to
     908                         * hide or show the empty taxonomies
     909                         */
     910                        $( '.quick-search-hide-empty' ).on( 'change', function() {
     911                                var $this = $(this).closest('div').find('.quick-search').first();
     912
     913                                api.updateQuickSearchResults( $this );
     914                        });
    905915                },
    906916
    907917                updateQuickSearchResults : function(input) {
    var wpNavMenu; 
    926936                                'menu': $('#menu').val(),
    927937                                'menu-settings-column-nonce': $('#menu-settings-column-nonce').val(),
    928938                                'q': q,
    929                                 'type': input.attr('name')
     939                                'type': input.attr('name'),
     940                                'hide-empty': input.closest('div').find('.quick-search-hide-empty').first().attr('checked')
    930941                        };
    931942
    932943                        $( '.spinner', panel ).addClass( 'is-active' );
    var wpNavMenu; 
    10641075                                        wrapper = target.parents('.accordion-section-content').first();
    10651076
    10661077                                        // upon changing tabs, we want to uncheck all checkboxes
    1067                                         $('input', wrapper).removeAttr('checked');
     1078                                        $('input', wrapper).not('.quick-search-hide-empty').removeAttr('checked');
    10681079
    10691080                                        $('.tabs-panel-active', wrapper).removeClass('tabs-panel-active').addClass('tabs-panel-inactive');
    10701081                                        $('#' + panelId, wrapper).removeClass('tabs-panel-inactive').addClass('tabs-panel-active');