Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




update_meta_cache [ WordPress Function ]

update_meta_cache ( $meta_type, $object_ids )
Parameters:
  • (string) $meta_type Type of object metadata is for (e.g., comment, post, or user)
  • (int|array) $object_ids array or comma delimited list of object IDs to update cache for
Uses:
  • $wpdb
Returns:
  • (mixed) Metadata cache for the specified objects, or false on failure.
Defined at:



Update the metadata cache for the specified objects.

Source


<?php
function update_meta_cache($meta_type$object_ids) {
    if ( empty( 
$meta_type ) || empty( $object_ids ) )
        return 
false;

    if ( ! 
$table _get_meta_table($meta_type) )
        return 
false;

    
$column esc_sql($meta_type '_id');

    global 
$wpdb;

    if ( !
is_array($object_ids) ) {
        
$object_ids preg_replace('|[^0-9,]|'''$object_ids);
        
$object_ids explode(','$object_ids);
    }

    
$object_ids array_map('intval'$object_ids);

    
$cache_key $meta_type '_meta';
    
$ids = array();
    
$cache = array();
    foreach ( 
$object_ids as $id ) {
        
$cached_object wp_cache_get$id$cache_key );
        if ( 
false === $cached_object )
            
$ids[] = $id;
        else
            
$cache[$id] = $cached_object;
    }

    if ( empty( 
$ids ) )
        return 
$cache;

    
// Get meta info
    
$id_list join(','$ids);
    
$meta_list $wpdb->get_results$wpdb->prepare("SELECT $column, meta_key, meta_value FROM $table WHERE $column IN ($id_list)",
        
$meta_type), ARRAY_A );

    if ( !empty(
$meta_list) ) {
        foreach ( 
$meta_list as $metarow) {
            
$mpid intval($metarow[$column]);
            
$mkey $metarow['meta_key'];
            
$mval $metarow['meta_value'];

            
// Force subkeys to be array type:
            
if ( !isset($cache[$mpid]) || !is_array($cache[$mpid]) )
                
$cache[$mpid] = array();
            if ( !isset(
$cache[$mpid][$mkey]) || !is_array($cache[$mpid][$mkey]) )
                
$cache[$mpid][$mkey] = array();

            
// Add a value to the current pid/key:
            
$cache[$mpid][$mkey][] = $mval;
        }
    }

    foreach ( 
$ids as $id ) {
        if ( ! isset(
$cache[$id]) )
            
$cache[$id] = array();
        
wp_cache_add$id$cache[$id], $cache_key );
    }

    return 
$cache;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics