Directory / plugin
Voce Group Keys
v1.0.1 · by banderon
Create string keys for caching based off of specified groups, allowing clearing keys based on the groups to which they belong.
About this plugin
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();
}