wp_cache_get_multiple example

if ( empty( $network_id ) ) {
        $network_id = get_current_network_id();
    }

    $core_options = array( 'site_name', 'siteurl', 'active_sitewide_plugins', '_site_transient_timeout_theme_roots', '_site_transient_theme_roots', 'site_admins', 'can_compress_scripts', 'global_terms_enabled', 'ms_files_rewriting' );

    if ( wp_using_ext_object_cache() ) {
        $cache_keys = array();
        foreach ( $core_options as $option ) {
            $cache_keys[] = "{$network_id}:{$option}";
        }
        wp_cache_get_multiple( $cache_keys, 'site-options' );

        return;
    }

    $core_options_in = "'" . implode( "', '", $core_options ) . "'";
    $options         = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM $wpdb->sitemeta WHERE meta_key IN ($core_options_in) AND site_id = %d", $network_id ) );

    $data = array();
    foreach ( $options as $option ) {
        $key                = $option->meta_key;
        $cache_key          = "{$network_id}:$key";
        
if ( ! is_array( $object_ids ) ) {
        $object_ids = explode( ',', $object_ids );
    }

    $object_ids     = array_map( 'intval', $object_ids );
    $non_cached_ids = array();

    $taxonomies = get_object_taxonomies( $object_type );

    foreach ( $taxonomies as $taxonomy ) {
        $cache_values = wp_cache_get_multiple( (array) $object_ids, "{$taxonomy}_relationships" );

        foreach ( $cache_values as $id => $value ) {
            if ( false === $value ) {
                $non_cached_ids[] = $id;
            }
        }
    }

    if ( empty( $non_cached_ids ) ) {
        return false;
    }

    

function _get_non_cached_ids( $object_ids$cache_group ) {
    $object_ids = array_filter( $object_ids, '_validate_cache_id' );
    $object_ids = array_unique( array_map( 'intval', $object_ids ), SORT_NUMERIC );

    if ( empty( $object_ids ) ) {
        return array();
    }

    $non_cached_ids = array();
    $cache_values   = wp_cache_get_multiple( $object_ids$cache_group );

    foreach ( $cache_values as $id => $value ) {
        if ( ! $value ) {
            $non_cached_ids[] = (int) $id;
        }
    }

    return $non_cached_ids;
}

/** * Checks whether the given cache ID is either an integer or an integer-like string. * * Both `16` and `"16"` are considered valid, other numeric types and numeric strings * (`16.3` and `"16.3"`) are considered invalid. * * @since 6.3.0 * * @param mixed $object_id The cache ID to validate. * @return bool Whether the given $object_id is a valid cache ID. */
$exclude_keys = array( 'parent', 'parent__in', 'parent__not_in' );
        do {
            // Parent-child relationships may be cached. Only query for those that are not.             $child_ids           = array();
            $uncached_parent_ids = array();
            $_parent_ids         = $levels[ $level ];
            if ( $_parent_ids ) {
                $cache_keys = array();
                foreach ( $_parent_ids as $parent_id ) {
                    $cache_keys[ $parent_id ] = "get_comment_child_ids:$parent_id:$key:$last_changed";
                }
                $cache_data = wp_cache_get_multiple( array_values( $cache_keys ), 'comment-queries' );
                foreach ( $_parent_ids as $parent_id ) {
                    $parent_child_ids = $cache_data[ $cache_keys[ $parent_id ] ];
                    if ( false !== $parent_child_ids ) {
                        $child_ids = array_merge( $child_ids$parent_child_ids );
                    } else {
                        $uncached_parent_ids[] = $parent_id;
                    }
                }
            }

            if ( $uncached_parent_ids ) {
                

    $check = apply_filters( "update_{$meta_type}_metadata_cache", null, $object_ids );
    if ( null !== $check ) {
        return (bool) $check;
    }

    $cache_key      = $meta_type . '_meta';
    $non_cached_ids = array();
    $cache          = array();
    $cache_values   = wp_cache_get_multiple( $object_ids$cache_key );

    foreach ( $cache_values as $id => $cached_object ) {
        if ( false === $cached_object ) {
            $non_cached_ids[] = $id;
        } else {
            $cache[ $id ] = $cached_object;
        }
    }

    if ( empty( $non_cached_ids ) ) {
        return $cache;
    }
$post_type_taxonomies[ $post->post_type ] = get_object_taxonomies( $post->post_type );
        }

        foreach ( $post_type_taxonomies[ $post->post_type ] as $taxonomy ) {
            $prime_post_terms[ $taxonomy ][] = $post->ID;
        }
    }

    $term_ids = array();
    if ( $prime_post_terms ) {
        foreach ( $prime_post_terms as $taxonomy => $post_ids ) {
            $cached_term_ids = wp_cache_get_multiple( $post_ids, "{$taxonomy}_relationships" );
            if ( is_array( $cached_term_ids ) ) {
                $cached_term_ids = array_filter( $cached_term_ids );
                foreach ( $cached_term_ids as $_term_ids ) {
                    // Backward compatibility for if a plugin is putting objects into the cache, rather than IDs.                     foreach ( $_term_ids as $term_id ) {
                        if ( is_numeric( $term_id ) ) {
                            $term_ids[] = (int) $term_id;
                        } elseif ( isset( $term_id->term_id ) ) {
                            $term_ids[] = (int) $term_id->term_id;
                        }
                    }
                }
Home | Imprint | This part of the site doesn't use cookies.