WordPress.org

Make WordPress Core

Ticket #16696: 16696.diff

File 16696.diff, 3.5 KB (added by solarissmoke, 3 years ago)
  • wp-admin/includes/meta-boxes.php

     
    652652 * 
    653653 * @param object $link 
    654654 */ 
    655 function link_categories_meta_box($link) { ?> 
     655function link_categories_meta_box($link) { 
     656        $link_id = isset( $link->link_id ) ? $link->link_id : 0;   
     657         ?> 
    656658<ul id="category-tabs" class="category-tabs"> 
    657659        <li class="tabs"><a href="#categories-all"><?php _e( 'All Categories' ); ?></a></li> 
    658660        <li class="hide-if-no-js"><a href="#categories-pop"><?php _e( 'Most Used' ); ?></a></li> 
     
    660662 
    661663<div id="categories-all" class="tabs-panel"> 
    662664        <ul id="categorychecklist" class="list:category categorychecklist form-no-clear"> 
    663                 <?php 
    664                 if ( isset($link->link_id) ) 
    665                         wp_link_category_checklist($link->link_id); 
    666                 else 
    667                         wp_link_category_checklist(); 
    668                 ?> 
     665                <?php wp_link_category_checklist( $link_id ); ?> 
    669666        </ul> 
    670667</div> 
    671668 
    672669<div id="categories-pop" class="tabs-panel" style="display: none;"> 
    673670        <ul id="categorychecklist-pop" class="categorychecklist form-no-clear"> 
    674                 <?php wp_popular_terms_checklist('link_category'); ?> 
     671                <?php wp_link_category_checklist( $link_id, true); ?> 
    675672        </ul> 
    676673</div> 
    677674 
  • wp-admin/includes/template.php

     
    190190} 
    191191 
    192192/** 
    193  * {@internal Missing Short Description}} 
     193 * Display a checklist of link categories 
    194194 * 
    195195 * @since 2.5.1 
    196196 * 
    197  * @param unknown_type $link_id 
     197 * @param int $link_id optional The ID of the link for which to display categories 
     198 * @param bool $popular optional Whether to show the most popular categories If set to false, 
     199 * then all categories will be shown 
     200 * @param int $number optional The number of popular categories to show. 
    198201 */ 
    199 function wp_link_category_checklist( $link_id = 0 ) { 
     202function wp_link_category_checklist( $link_id = 0, $popular = false, $number = 10 ) { 
    200203        $default = 1; 
    201204 
    202205        if ( $link_id ) { 
     
    208211                $checked_categories[] = $default; 
    209212        } 
    210213 
    211         $categories = get_terms( 'link_category', array( 'orderby' => 'name', 'hide_empty' => 0 ) ); 
     214        if ( $popular ) 
     215                $categories = get_terms( 'link_category', array( 'orderby' => 'count', 'order' => 'desc', 'limit' => (int)$popular, 'hide_empty' => 0 ) ); 
     216        else 
     217                $categories = get_terms( 'link_category', array( 'orderby' => 'name', 'hide_empty' => 0 ) ); 
     218                 
    212219 
    213220        if ( empty( $categories ) ) 
    214221                return; 
     
    217224                $cat_id = $category->term_id; 
    218225                $name = esc_html( apply_filters( 'the_category', $category->name ) ); 
    219226                $checked = in_array( $cat_id, $checked_categories ) ? ' checked="checked"' : ''; 
    220                 echo '<li id="link-category-', $cat_id, '"><label for="in-link-category-', $cat_id, '" class="selectit"><input value="', $cat_id, '" type="checkbox" name="link_category[]" id="in-link-category-', $cat_id, '"', $checked, '/> ', $name, "</label></li>"; 
     227 
     228                if( $popular ) 
     229                        echo "<li class='popular-category' id='popular-link-category-$cat_id'><label for='in-popular-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' id='in-popular-category-$cat_id' $checked /> $name </label></li>"; 
     230                else  
     231                        echo "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' name='link_category[]' id='in-link-category-$cat_id' $checked /> $name </label></li>"; 
    221232        } 
    222233} 
    223234