WordPress.org

Make WordPress Core

Ticket #34175: 34175.taxonomy-functions.php.patch

File 34175.taxonomy-functions.php.patch, 2.6 KB (added by wpsmith, 4 years ago)

Checks

  • wp-includes/taxonomy-functions.php

     
    14111411        }
    14121412
    14131413        $terms = $wpdb->get_results($query);
    1414         if ( 'all' == $_fields ) {
     1414        $term_ids = wp_list_pluck( $terms, 'term_id' );
     1415        if ( 'all' == $_fields && !empty( $has_term_ids ) ) {
    14151416                update_term_cache( $terms );
    14161417        }
    14171418
    14181419        // Prime termmeta cache.
    1419         if ( $args['update_term_meta_cache'] ) {
    1420                 $term_ids = wp_list_pluck( $terms, 'term_id' );
     1420        if ( $args['update_term_meta_cache'] && $term_ids ) {
    14211421                update_termmeta_cache( $term_ids );
    14221422        }
    14231423
     
    14281428                return apply_filters( 'get_terms', array(), $taxonomies, $args );
    14291429        }
    14301430
    1431         if ( $child_of ) {
     1431        if ( $child_of && $term_ids ) {
    14321432                foreach ( $taxonomies as $_tax ) {
    14331433                        $children = _get_term_hierarchy( $_tax );
    14341434                        if ( ! empty( $children ) ) {
     
    14381438        }
    14391439
    14401440        // Update term counts to include children.
    1441         if ( $args['pad_counts'] && 'all' == $_fields ) {
     1441        if ( $args['pad_counts'] && 'all' == $_fields && $term_ids ) {
    14421442                foreach ( $taxonomies as $_tax ) {
    14431443                        _pad_term_counts( $terms, $_tax );
    14441444                }
     
    14451445        }
    14461446
    14471447        // Make sure we show empty categories that have children.
    1448         if ( $hierarchical && $args['hide_empty'] && is_array( $terms ) ) {
     1448        if ( $hierarchical && $args['hide_empty'] && is_array( $terms ) && $term_ids ) {
    14491449                foreach ( $terms as $k => $term ) {
    14501450                        if ( ! $term->count ) {
    14511451                                $children = get_term_children( $term->term_id, $term->taxonomy );
     
    14651465        }
    14661466
    14671467        $_terms = array();
    1468         if ( 'id=>parent' == $_fields ) {
     1468        if ( 'id=>parent' == $_fields && $term_ids ) {
    14691469                foreach ( $terms as $term ) {
    14701470                        $_terms[ $term->term_id ] = $term->parent;
    14711471                }
    1472         } elseif ( 'ids' == $_fields ) {
     1472        } elseif ( 'ids' == $_fields && $term_ids ) {
    14731473                foreach ( $terms as $term ) {
    14741474                        $_terms[] = $term->term_id;
    14751475                }
    1476         } elseif ( 'names' == $_fields ) {
     1476        } elseif ( 'names' == $_fields && !empty( wp_list_pluck( $terms, 'name' ) ) ) {
    14771477                foreach ( $terms as $term ) {
    14781478                        $_terms[] = $term->name;
    14791479                }
    1480         } elseif ( 'id=>name' == $_fields ) {
     1480        } elseif ( 'id=>name' == $_fields && $term_ids && !empty( wp_list_pluck( $terms, 'name' ) ) ) {
    14811481                foreach ( $terms as $term ) {
    14821482                        $_terms[ $term->term_id ] = $term->name;
    14831483                }
    1484         } elseif ( 'id=>slug' == $_fields ) {
     1484        } elseif ( 'id=>slug' == $_fields && $term_ids && !empty( wp_list_pluck( $terms, 'slug' ) ) ) {
    14851485                foreach ( $terms as $term ) {
    14861486                        $_terms[ $term->term_id ] = $term->slug;
    14871487                }