问得好。据我所知,没有办法筛选此列表(有long trac ticket 如果你感兴趣的话,关于一个提案,以及这个网站上的相关(但不同)问题here 和here).
因为没有过滤器,所以您可能不得不求助于使用jQuery。
我们可以使用admin_print_footer_scripts
措施:
add_action("admin_print_footer_scripts", "wpse_227485_categorise_page_templates");
function wpse_227486_categorise_page_templates(){
?>
<script>
// run scripts here
</script>
<?php
}
然后我们需要弄清楚的是如何访问模板并对其进行分类。
查看post editor页面的源代码,模板位于#pageparentdiv
在a中select
调用的元素#page_template
. 因此,我们可以访问以下选项:
jQuery("#pageparentdiv #page_template option")
使用此功能,您可以通过在您知道要对模板进行分类的项目上方添加其他空白、禁用的选项,以自定义的方式对模板进行有效的“分类”,例如:
jQuery("#pageparentdiv #page_template option[value=\'my-template.php\']")
.before("<option disabled=\'disabled\'>My Template Heading</option>");
将上述代码块替换标记的部分
// run scripts here
在上面的第一个块中,将添加“My Template Heading”(我的模板标题),作为上面模板“My Template”(我的模板)所在位置的不可选择选项。php’在列表中。
当然,在需要的地方添加尽可能多的这些内容:)
重要的是要注意,这不会以任何方式成为动态的,但可以根据您想要的内容进行编码。Wordpress中没有内置的方法将模板定义为用于父页面/子页面等,但如果需要动态的模板,理论上可以通过不同的方式来实现,例如在模板文件的顶部添加一个自定义变量,然后在生成此脚本之前读取它们。