WordPress.org

Make WordPress Core

Ticket #11575: 11575.diff

File 11575.diff, 5.8 KB (added by dd32, 8 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>