可用模板列表由生成get_page_templates
. 此函数结束时,您将看到一个允许您修改输出的过滤器。您可以在以下特定条件下使用该选项进行更改:
add_filter (\'theme_page_templates\',\'wpse302574_conditional_templates\', 10, 4);
function wpse302574_conditional_templates ($post_templates, $this, $post, $post_type) {
$parent_id = wp_get_post_parent_id ($post->ID);
if (get_page_template_slug ($parent_id) == \'slug_of_your_parent_template\') {
// remove unwanted templates from $post_templates
}
return $post_templates;
}
(我没有测试此代码,可能需要进行一些调试)