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;
 | |
| }
 |