41 lines
889 B
PHP
41 lines
889 B
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* Returns available templates for each post type.
|
||
|
*
|
||
|
* @date 29/8/17
|
||
|
* @since 5.6.2
|
||
|
*
|
||
|
* @param void
|
||
|
* @return array
|
||
|
*/
|
||
|
function acf_get_post_templates() {
|
||
|
|
||
|
// Check store.
|
||
|
$cache = acf_get_data( 'post_templates' );
|
||
|
if ( $cache !== null ) {
|
||
|
return $cache;
|
||
|
}
|
||
|
|
||
|
// Initialize templates with default placeholder for pages.
|
||
|
$post_templates = array();
|
||
|
$post_templates['page'] = array();
|
||
|
|
||
|
// Loop over post types and append their templates.
|
||
|
if ( method_exists( 'WP_Theme', 'get_page_templates' ) ) {
|
||
|
$post_types = get_post_types();
|
||
|
foreach ( $post_types as $post_type ) {
|
||
|
$templates = wp_get_theme()->get_page_templates( null, $post_type );
|
||
|
if ( $templates ) {
|
||
|
$post_templates[ $post_type ] = $templates;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Update store.
|
||
|
acf_set_data( 'post_templates', $post_templates );
|
||
|
|
||
|
// Return templates.
|
||
|
return $post_templates;
|
||
|
}
|