我正在为wordpress制作一个儿童主题。我试图让最终用户尽可能地证明这一点,因此我希望删除所有父页面模板,以免意外选择它们。
有没有办法从子主题功能或插件中取消注册?我知道我可以从父母那里删除它们,但这不是更新/升级证明。
感谢任何帮助,谢谢!
答案 0 :(得分:2)
get_themes()
中没有可用的过滤器,这是WordPress在使用主题和主题时从主题和父主题中找到模板文件的位置。也没有针对get_page_templates()
或page_template_dropdown()
的任何过滤器。我会说你最好的选择是以某种方式删除或隐藏管理面板中的选项元素,阻止用户选择它们。
挂钩admin_head
操作并注入javascript或css来处理#page_template option[val=template-filename.php]
。
答案 1 :(得分:1)
只需在子主题中添加具有相同名称和模板标题的空模板即可。然后使用locate_template();
在这些模板中添加您自己的模板。
答案 2 :(得分:0)
我发现同样的问题有更多答案:https://wordpress.stackexchange.com/questions/13671/how-to-remove-a-parent-theme-page-template-from-a-child-theme
请注意,某些答案不适用于WordPress的更高版本(如3.8)。 WordPress 3.9可能有一个钩子,允许开发人员简单地排除或重命名列表中的模板。