theme_page_templates
Filters list of page templates for a theme.
This is one of the variants of the dynamic hook theme_(post_type)_templates
Usage
add_filter( 'theme_page_templates', 'wp_kama_theme_page_templates_filter', 10, 4 );
/**
* Function for `theme_page_templates` filter-hook.
*
* @param string[] $post_templates Array of template header names keyed by the template file name.
* @param WP_Theme $theme The theme object.
* @param WP_Post|null $post The post being edited, provided for context, or null.
* @param string $post_type Post type to get the templates for.
*
* @return string[]
*/
function wp_kama_theme_page_templates_filter( $post_templates, $theme, $post, $post_type ){
// filter...
return $post_templates;
}
- $post_templates(string[])
- Array of template header names keyed by the template file name.
- $theme(WP_Theme)
- The theme object.
- $post(WP_Post|null)
- The post being edited, provided for context, or null.
- $post_type(string)
- Post type to get the templates for.
Changelog
| Since 3.9.0 | Introduced. |
| Since 4.4.0 | Converted to allow complete control over the $page_templates array. |
| Since 4.7.0 | Added the $post_type parameter. |
Where the hook is called
theme_page_templates
wp-includes/class-wp-theme.php 1434
$post_templates = (array) apply_filters( "theme_{$post_type}_templates", $post_templates, $this, $post, $post_type );