| | 117 | * Gets multiple values from cache in one call. |
| | 118 | * |
| | 119 | * Key/group association is handled by assuming all keys have the same group |
| | 120 | * if string or single value array is passed as the 'groups' value. If 'groups' |
| | 121 | * is an array with more than 1 value, then groups[n] corresponds with keys[n]. |
| | 122 | * If there are more 'keys' values then 'groups' values, remaining keys will be |
| | 123 | * pulled from the 'default' group. |
| | 124 | * |
| | 125 | * @since 3.? |
| | 126 | * @uses $wp_object_cache Object Cache Class |
| | 127 | * @see WP_Object_Cache::get_multi() |
| | 128 | * |
| | 129 | * @param mixed $keys Array of keys associated with values. |
| | 130 | * @param mixed $groups Array of groups associated with keys. |
| | 131 | * @return array|bool Array of values organized into groups. |
| | 132 | */ |
| | 133 | function wp_cache_get_multi( $keys, $groups = '' ) { |
| | 134 | global $wp_object_cache; |
| | 135 | |
| | 136 | return $wp_object_cache->get_multi( $keys, $groups ); |
| | 137 | } |
| | 138 | |
| | 139 | /** |
| | 443 | * Gets multiple values from cache in one call. |
| | 444 | * |
| | 445 | * Key/group association is handled by assuming all keys have the same group |
| | 446 | * if string or single value array is passed as the 'groups' value. If 'groups' |
| | 447 | * is an array with more than 1 value, then groups[n] corresponds with keys[n]. |
| | 448 | * If there are more 'keys' values then 'groups' values, remaining keys will be |
| | 449 | * pulled from the 'default' group. |
| | 450 | * |
| | 451 | * @since 3.? |
| | 452 | * |
| | 453 | * @param mixed $keys Array of keys associated with values. |
| | 454 | * @param mixed $groups Array of groups associated with keys. |
| | 455 | * @return array|bool Array of values organized into groups. |
| | 456 | */ |
| | 457 | function get_multi( $keys, $groups = 'default' ) { |
| | 458 | $values = array(); |
| | 459 | |
| | 460 | // If two strings are sent, do a normal get |
| | 461 | if ( is_string( $keys ) && is_string( $groups ) ) { |
| | 462 | $value = $this->get( $keys, $groups ); |
| | 463 | |
| | 464 | if ( false === $value ) |
| | 465 | return false; |
| | 466 | |
| | 467 | $values[ $groups ][ $keys ] = $this->get( $keys, $groups ); |
| | 468 | return $values; |
| | 469 | } |
| | 470 | |
| | 471 | // Ensure arrays |
| | 472 | if ( ! is_array( $keys ) ) |
| | 473 | $keys = (array) $keys; |
| | 474 | |
| | 475 | if ( ! is_array( $groups ) ) |
| | 476 | $groups = (array) $groups; |
| | 477 | |
| | 478 | // Ensure numerical keying of arrays |
| | 479 | $keys = array_values( $keys ); |
| | 480 | $groups = array_values( $groups ); |
| | 481 | |
| | 482 | /** |
| | 483 | * Loop through keys to get values. If $groups[ $i ] exists, assume |
| | 484 | * it belongs with $keys[ $i ]. If there is only one value in $groups, |
| | 485 | * assume that group corresponds to all $keys. Default is to make the |
| | 486 | * group 'default'. |
| | 487 | */ |
| | 488 | for ( $i = 0; $i < count( $keys ); $i++ ) { |
| | 489 | if ( isset( $groups[ $i ] ) && ! empty( $groups[ $i ] ) ) |
| | 490 | $values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], $groups[ $i ] ); |
| | 491 | elseif ( count( $groups ) == 1 && isset( $groups[0] ) && ! empty( $groups[ 0 ] ) ) |
| | 492 | $values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], $groups[0] ); |
| | 493 | else |
| | 494 | $values[ $groups[ $i ] ][ $keys[ $i ] ] = $this->get( $keys[ $i ], 'default' ); |
| | 495 | } |
| | 496 | |
| | 497 | return $values; |
| | 498 | } |
| | 499 | |
| | 500 | /** |