Make WordPress Core


Ignore:
Timestamp:
12/01/2013 11:59:13 PM (12 years ago)
Author:
wonderboymusic
Message:

Fix lingering reference problem in wp_get_object_terms() by not setting the foreach'd vars to a reference. Adds unit test.

Props stephenharris.
Fixes #26339.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/taxonomy.php

    r26028 r26510  
    20472047    if ( 'all' == $fields || 'all_with_object_id' == $fields ) {
    20482048        $_terms = $wpdb->get_results( $query );
    2049         foreach ( $_terms as &$term )
    2050             $term = sanitize_term( $term, $taxonomy, 'raw' );
     2049        foreach ( $_terms as $key => $term ) {
     2050            $_terms[$key] = sanitize_term( $term, $taxonomy, 'raw' );
     2051        }
    20512052        $terms = array_merge( $terms, $_terms );
    20522053        update_term_cache( $terms );
     
    20542055        $_terms = $wpdb->get_col( $query );
    20552056        $_field = ( 'ids' == $fields ) ? 'term_id' : 'name';
    2056         foreach ( $_terms as &$term )
    2057             $term = sanitize_term_field( $_field, $term, $term, $taxonomy, 'raw' );
     2057        foreach ( $_terms as $key => $term ) {
     2058            $_terms[$key] = sanitize_term_field( $_field, $term, $term, $taxonomy, 'raw' );
     2059        }
    20582060        $terms = array_merge( $terms, $_terms );
    20592061    } else if ( 'tt_ids' == $fields ) {
    20602062        $terms = $wpdb->get_col("SELECT tr.term_taxonomy_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tr.object_id IN ($object_ids) AND tt.taxonomy IN ($taxonomies) $orderby $order");
    2061         foreach ( $terms as &$tt_id )
    2062             $tt_id = sanitize_term_field( 'term_taxonomy_id', $tt_id, 0, $taxonomy, 'raw' ); // 0 should be the term id, however is not needed when using raw context.
     2063        foreach ( $terms as $key => $tt_id ) {
     2064            $terms[$key] = sanitize_term_field( 'term_taxonomy_id', $tt_id, 0, $taxonomy, 'raw' ); // 0 should be the term id, however is not needed when using raw context.
     2065        }
    20632066    }
    20642067
Note: See TracChangeset for help on using the changeset viewer.