WordPress.org

Make WordPress Core

Ticket #16696: 16696.diff

File 16696.diff, 3.5 KB (added by solarissmoke, 7 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