in web/wp-content/plugins/acf-extended/includes/modules/performance/module-performance-functions.php [223:395]
function acfe_is_object_type_performance_enabled($type, $object){
// get config
$config = acfe_get_performance_config();
switch($type){
// post types
case 'post': {
/**
* $post_types
*
* false = disallow all
* true = allow all
* array() = allow all
* array('post') = allow specific
*/
// vars
$restricted = acfe_get_setting('reserved_post_types', array());
$post_types = $config['post_types'];
// no post types allowed
if($post_types === false){
return false;
}
// reserved post type
if(in_array($object, $restricted)){
return false;
}
// allow all post types
if($post_types === true){
return true;
}
// array of specific post types
if(!empty($post_types)){
// always append 'revision' to allowed post types
if(!in_array('revision', $post_types)){
$post_types[] = 'revision';
}
if(!in_array($object, $post_types)){
return false;
}
}
// allowed (empty array)
return true;
}
// taxonomies
case 'term': {
/**
* $taxonomies
*
* false = disallow all
* true = allow all
* array() = allow all
* array('cat') = allow specific
*/
// vars
$restricted = acfe_get_setting('reserved_taxonomies', array());
$taxonomies = $config['taxonomies'];
// no taxonomies allowed
if($taxonomies === false){
return false;
}
// reserved taxonomy
if(in_array($object, $restricted)){
return false;
}
// allow all taxonomies
if($taxonomies === true){
return true;
}
// taxonomy not allowed
if(!empty($taxonomies) && !in_array($object, $taxonomies)){
return false;
}
// allowed (empty array)
return true;
}
// users
case 'user': {
/**
* $users
*
* false = disallow all
* true = allow all
* array() = allow all
* array('editor') = allow specific
*/
// vars
$users = $config['users'];
// no users allowed
if($users === false){
return false;
// allow all users
}elseif($users === true){
return true;
}
// taxonomy not allowed
if(!empty($users) && !in_array($object, $users)){
return false;
}
// allowed (empty array)
return true;
}
// options pages
case 'option': {
/**
* $options
*
* false = disallow all
* true = allow all
* array() = allow all
* array('options') = allow specific
*/
// vars
$options = $config['options'];
// no options allowed
if($options === false){
return false;
// allow all options
}elseif($options === true){
return true;
}
// option not allowed
if(!empty($options) && !in_array($object, $options)){
return false;
}
// allowed (empty array)
return true;
}
}
// type not supported
// block types...
return false;
}