可用模板列表由生成get_page_templates
. 此函数结束时,您将看到一个允许您修改输出的过滤器。您可以在以下特定条件下使用该选项进行更改:
add_filter (\'theme_page_templates\',\'wpse302662_hide_templates\', 10, 4);
function wpse302662_hide_templates ($post_templates, $this, $post, $post_type) {
$templates_to_hide = array (\'template-1\', \'template-2\');
$current_template = get_page_template_slug ($post->ID);
if (!in_array ($current_template, $templates_to_hide) {
// remove unwanted templates from $post_templates
}
return $post_templates;
}
Edited code 下面是Jacob的建议。条件和删除操作中的一些额外逻辑可能是必要的,以准确反映何时要隐藏哪些模板。