Voce Group Keys

Created by: banderon

Rating:
Downloaded: 654 times

Gives functions to use to generate strings to use as keys for caching. Keys are generated based on a passed in name and
zero or more groups. Providing the same name and groups will return the same key until the entire cache is cleared
or the cache for a specific group name is cleared.

Usage

$key: STRING
$groups: STRING|ARRAY

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Get a key for $key that is in the $groups group(s)
    voce_get_cache_key( $key, $groups );

    // Clear the keys for $groups
    // If multiple groups are specified, keys in any of the specified groups will be cleared
    voce_clear_group_cache( $groups );

    // Clear all keys
    voce_clear_all_group_cache();
}

Example 1

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Get a key without a group
    echo voce_get_cache_key( 'data' );  // data_4942b011eb

    // Get keys in a single group
    echo voce_get_cache_key( 'data', 'people' );  // data_9915443f5c
    echo voce_get_cache_key( 'more-data', 'people' );  // more-data_9915443f5c

    // The same key will be returned
    echo voce_get_cache_key( 'data', 'people' );  // data_9915443f5c

    // Clear keys in the 'people' group
    voce_clear_group_cache( 'people' );

    // After clearing keys, a new key is returned for keys using that group
    echo voce_get_cache_key( 'data', 'people' );  // data_77j18e728
    echo voce_get_cache_key( 'data' );  // data_4942b011eb

}

Example 2

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Set transients using multiple groups
    echo voce_get_cache_key( 'user-data', 'users' );  // user-data_9915443f5c
    echo voce_get_cache_key( 'post-data', 'posts' );  // post-data_85fb002156
    echo voce_get_cache_key( 'user-post-data', array( 'posts', 'users' ) );  // user-post-data_4aee2c2c89

    // Clear any keys using the 'posts' group
    voce_clear_group_cache( 'posts' );

    // New keys returned for anything in the 'posts' group
    echo voce_get_cache_key( 'user-data', 'users' );  // user-data_9915443f5c
    echo voce_get_cache_key( 'post-data', 'posts' );  // post-data_820dd0dfb0
    echo voce_get_cache_key( 'user-post-data', array( 'posts', 'users' ) );  // user-post-data_b7ac93f802

    // The order of groups is irrelevant
    echo voce_get_cache_key( 'user-post-data', array( 'users', 'posts' ) );  // user-post-data_b7ac93f802

    // Clear any keys in either the 'users' or 'posts' groups
    voce_clear_group_cache( array( 'users', 'posts' ) );

    // Clear all keys
    voce_clear_all_group_cache();
}

Screenshots

    Categories

    Get New Themes & Resources