in web/wp-content/plugins/acf-extended/includes/modules/post-type/module-post-type-features.php [197:254]
function front_template($template){
if(!is_single() && !is_post_type_archive() && !is_home()){
return $template;
}
// Get_query_var
$query_var = get_query_var('post_type', false);
if(is_array($query_var) && !empty($query_var)){
$query_var = $query_var[0];
}
foreach(get_post_types(array(), 'objects') as $post_type){
// Get_query_var check
$is_query_var = $query_var && $query_var === $post_type->name;
// Get_post_type check
$get_post_type = get_post_type() === $post_type->name;
// Acfe_archive_template
$acfe_archive_template = isset($post_type->acfe_archive_template) && !empty($post_type->acfe_archive_template);
// Acfe_archive_template
$acfe_single_template = isset($post_type->acfe_single_template) && !empty($post_type->acfe_single_template);
// Global check
if(!$get_post_type || !$is_query_var || (!$acfe_archive_template && !$acfe_single_template)){
continue;
}
$rule = array();
$rule['is_archive'] = is_post_type_archive($post_type->name);
$rule['has_archive'] = $post_type->has_archive;
$rule['is_single'] = is_singular($post_type->name);
// Post Exception
if($post_type->name === 'post'){
$rule['is_archive'] = is_home();
$rule['has_archive'] = true;
}
// Archive
if($rule['has_archive'] && $rule['is_archive'] && $acfe_archive_template && ($locate = locate_template(array($post_type->acfe_archive_template)))){
return $locate;
}
// Single
elseif($rule['is_single'] && $acfe_single_template && ($locate = locate_template(array($post_type->acfe_single_template)))){
return $locate;
}
}
return $template;
}