WordPress.org

Make WordPress Core

Ticket #11575: 11575.diff

File 11575.diff, 5.8 KB (added by dd32, 5 years ago)
  • wp-admin/includes/template.php

     
    671671 * @param unknown_type $class 
    672672 * @return unknown 
    673673 */ 
    674 function _tag_row( $tag, $level, $class = '', $taxonomy = 'post_tag' ) { 
     674function _tag_row( $tag, $level, $taxonomy = 'post_tag' ) { 
     675                static $row_class = ''; 
     676                $row_class = ($row_class == '' ? ' class="alternate"' : ''); 
     677 
    675678                $count = number_format_i18n( $tag->count ); 
    676679                if ( 'post_tag' == $taxonomy )  
    677680                        $tagsel = 'tag'; 
     
    685688                $count = ( $count > 0 ) ? "<a href='edit.php?$tagsel=$tag->slug'>$count</a>" : $count; 
    686689 
    687690                $pad = str_repeat( '&#8212; ', max(0, $level) ); 
    688                 $name = apply_filters( 'term_name', $pad . ' ' . $tag->name ); 
     691                $name = apply_filters( 'term_name', $pad . ' ' . $tag->name, $tag ); 
    689692                $qe_data = get_term($tag->term_id, $taxonomy, object, 'edit'); 
    690693                $edit_link = "edit-tags.php?action=edit&amp;taxonomy=$taxonomy&amp;tag_ID=$tag->term_id"; 
    691694 
    692695                $out = ''; 
    693                 $out .= '<tr id="tag-' . $tag->term_id . '"' . $class . '>'; 
     696                $out .= '<tr id="tag-' . $tag->term_id . '"' . $row_class . '>'; 
    694697 
     698 
    695699                $columns = get_column_headers('edit-tags'); 
    696700                $hidden = get_hidden_columns('edit-tags'); 
    697701                $default_term = get_option('default_' . $taxonomy); 
     
    780784 
    781785        $args = array('offset' => $start, 'number' => $pagesize, 'hide_empty' => 0); 
    782786 
    783         if ( !empty( $searchterms ) ) 
     787        if ( !empty( $searchterms ) ) { 
    784788                $args['search'] = $searchterms; 
     789                add_filter('term_name', '_tag_rows_prepend_parents', 20, 2); 
     790        } 
    785791 
    786792        // convert it to table rows 
    787793        $out = ''; 
     
    791797                $args['number'] = $args['offset'] = 0; 
    792798 
    793799                $terms = get_terms( $taxonomy, $args ); 
    794                 if ( !empty( $searchterms ) ) // Ignore children on searches. 
    795                         $children = array(); 
    796                 else 
    797                         $children = _get_term_hierarchy($taxonomy); 
     800                $children = _get_term_hierarchy($taxonomy); 
    798801 
    799                 // Some funky recursion to get the job done is contained within, Skip it for non-hierarchical taxonomies for performance sake 
     802                // Some funky recursion to get the job done(Paging & parents mainly) is contained within, Skip it for non-hierarchical taxonomies for performance sake 
    800803                $out .= _term_rows($taxonomy, $terms, $children, $page, $pagesize, $count); 
    801804        } else { 
    802805                $terms = get_terms( $taxonomy, $args ); 
    803806                foreach( $terms as $term ) 
    804                         $out .= _tag_row( $term, 0, ++$count % 2 ? ' class="alternate"' : '', $taxonomy ); 
     807                        $out .= _tag_row( $term, 0, $taxonomy ); 
    805808        } 
     809        remove_filter('term_name', '_tag_rows_prepend_parents', 20, 2); 
    806810 
    807811        echo $out; 
    808812        return $count; 
    809813} 
    810814 
     815function _tag_rows_prepend_parents($name, $term) { 
     816        $parent_ids = array(); 
     817        $p = $term->parent; 
     818        while ( $p ) { 
     819                $my_parent = get_term( $p, $term->taxonomy ); 
     820                $p = $my_parent->parent; 
     821                if ( in_array($p, $parent_ids) ) // Prevent parent loops. 
     822                        break; 
     823                $parent_ids[] = $p; 
     824                $name = $my_parent->name . ' &#8212; ' . $name; 
     825        } 
     826 
     827        return $name; 
     828} 
     829 
    811830function _term_rows( $taxonomy, $terms, &$children, $page = 1, $per_page = 20, &$count, $parent = 0, $level = 0 ) { 
    812831 
    813832        $start = ($page - 1) * $per_page; 
     
    837856                        unset($parent_ids); 
    838857 
    839858                        $num_parents = count($my_parents); 
    840                         $count -= $num_parents; // Do not include parents in the per-page count, This is due to paging issues with unknown numbers of rows. 
    841859                        while ( $my_parent = array_pop($my_parents) ) { 
    842                                 $output .=  "\t" . _tag_row( $my_parent, $level - $num_parents, ++$count % 2 ? ' class="alternate"' : '', $taxonomy ); 
     860                                $output .=  "\t" . _tag_row( $my_parent, $level - $num_parents, $taxonomy ); 
    843861                                $num_parents--; 
    844862                        } 
    845863                } 
    846864 
    847865                if ( $count >= $start ) 
    848                         $output .= "\t" . _tag_row( $term, $level, ++$count % 2 ? ' class="alternate"' : '', $taxonomy ); 
    849                 else 
    850                         ++$count; 
     866                        $output .= "\t" . _tag_row( $term, $level, $taxonomy ); 
    851867 
     868                ++$count; 
     869 
    852870                unset($terms[$key]); 
    853871 
    854                 if ( isset($children[$term->term_id]) ) 
     872                if ( isset($children[$term->term_id]) && empty($_GET['s']) ) 
    855873                        $output .= _term_rows( $taxonomy, $terms, $children, $page, $per_page, $count, $term->term_id, $level + 1 ); 
    856874        } 
    857875 
     
    26902708?> 
    26912709</select> 
    26922710<input class="hide-if-js" type="text" id="metakeyinput" name="metakeyinput" tabindex="7" value="" /> 
    2693 <a href="#postcustomstuff" class="hide-if-no-js" onclick="jQuery('#metakeyinput, #metakeyselect, #enternew, #cancelnew').toggle();return false;"> 
     2711<a href="#postcustomstuff" class="hide-if-no-js" onClick="jQuery('#metakeyinput, #metakeyselect, #enternew, #cancelnew').toggle();return false;"> 
    26942712<span id="enternew"><?php _e('Enter new'); ?></span> 
    26952713<span id="cancelnew" class="hidden"><?php _e('Cancel'); ?></span></a> 
    26962714<?php } else { ?> 
     
    33673385                                <?php wp_nonce_field( 'find-posts', '_ajax_nonce', false ); ?> 
    33683386                                <label class="screen-reader-text" for="find-posts-input"><?php _e( 'Search' ); ?></label> 
    33693387                                <input type="text" id="find-posts-input" name="ps" value="" /> 
    3370                                 <input type="button" onclick="findPosts.send();" value="<?php esc_attr_e( 'Search' ); ?>" class="button" /><br /> 
     3388                                <input type="button" onClick="findPosts.send();" value="<?php esc_attr_e( 'Search' ); ?>" class="button" /><br /> 
    33713389 
    33723390                                <input type="radio" name="find-posts-what" id="find-posts-posts" checked="checked" value="posts" /> 
    33733391                                <label for="find-posts-posts"><?php _e( 'Posts' ); ?></label> 
     
    33773395                        <div id="find-posts-response"></div> 
    33783396                </div> 
    33793397                <div class="find-box-buttons"> 
    3380                         <input type="button" class="button alignleft" onclick="findPosts.close();" value="<?php esc_attr_e('Close'); ?>" /> 
     3398                        <input type="button" class="button alignleft" onClick="findPosts.close();" value="<?php esc_attr_e('Close'); ?>" /> 
    33813399                        <input id="find-posts-submit" type="submit" class="button-primary alignright" value="<?php esc_attr_e('Select'); ?>" /> 
    33823400                </div> 
    33833401        </div>