<?php if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if( ! class_exists('acf_cache') ) : class acf_cache { // vars var $reference = array(); /* * __construct * * This function will setup the class functionality * * @type function * @date 5/03/2014 * @since 5.4.0 * * @param n/a * @return n/a */ function __construct() { // prevent ACF from persistent cache wp_cache_add_non_persistent_groups('acf'); } /* * get_key * * This function will check for references and modify the key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @return $key */ function get_key( $key = '' ) { // check for reference if( isset($this->reference[ $key ]) ) { $key = $this->reference[ $key ]; } // return return $key; } /* * isset_cache * * This function will return true if a cached data exists for the given key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @return (boolean) */ function isset_cache( $key = '' ) { // vars $key = $this->get_key($key); $found = false; // get cache $cache = wp_cache_get($key, 'acf', false, $found); // return return $found; } /* * get_cache * * This function will return cached data for a given key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @return (mixed) */ function get_cache( $key = '' ) { // vars $key = $this->get_key($key); $found = false; // get cache $cache = wp_cache_get($key, 'acf', false, $found); // return return $cache; } /* * set_cache * * This function will set cached data for a given key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @param $data (mixed) * @return n/a */ function set_cache( $key = '', $data = '' ) { wp_cache_set($key, $data, 'acf'); return $key; } /* * set_cache_reference * * This function will set a reference to cached data for a given key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @param $reference (string) * @return n/a */ function set_cache_reference( $key = '', $reference = '' ) { $this->reference[ $key ] = $reference; return $key; } /* * delete_cache * * This function will delete cached data for a given key * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param $key (string) * @return n/a */ function delete_cache( $key = '' ) { return wp_cache_delete( $key, 'acf' ); } } // initialize acf()->cache = new acf_cache(); endif; // class_exists check /* * acf_isset_cache * * alias of acf()->cache->isset_cache() * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_isset_cache( $key = '' ) { return acf()->cache->isset_cache( $key ); } /* * acf_get_cache * * alias of acf()->cache->get_cache() * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_get_cache( $key = '' ) { return acf()->cache->get_cache( $key ); } /* * acf_set_cache * * alias of acf()->cache->set_cache() * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_set_cache( $key = '', $data ) { return acf()->cache->set_cache( $key, $data ); } /* * acf_set_cache_reference * * alias of acf()->cache->set_cache_reference() * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_set_cache_reference( $key = '', $reference = '' ) { return acf()->cache->set_cache_reference( $key, $reference ); } /* * acf_delete_cache * * alias of acf()->cache->delete_cache() * * @type function * @date 30/06/2016 * @since 5.4.0 * * @param n/a * @return n/a */ function acf_delete_cache( $key = '' ) { return acf()->cache->delete_cache( $key ); } ?>