如何在WordPress中隐藏模板( [关闭])

关闭。这个问题是题外话。它当前不接受答案。
想改善这个问题吗?更新问题, 使其成为Stack Overflow的主题。
7年前关闭。
有没有办法在管理员中隐藏模板文件?
例如, 我有一个仅在安装了特定插件的情况下才可用的模板, 并且我已经知道如何检查插件是否处于活动状态。但是, 如何隐藏模板?
例如, 我想隐藏” Blogger重定向” -模板波纹管:

如何在WordPress中隐藏模板( [关闭])

文章图片
我发现了几个链接, 但是所有解决方案似乎都已弃用。
编辑:如果有人对我如何检查插件是否活跃感兴趣, 请执行以下功能:
function isPluginActive($plugin){ if ( in_array( $plugin, apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { return true; } return false; }

#1 更新-由安德鲁(Andrew)在以下评论中指出的警告:
谨慎使用此代码, 如果有任何页面使用从选择中删除的模板, 则更新页面将导致其恢复为默认模板
我不确定是否有PHP方式可以执行此操作-你必须查看WP_Theme类, 但是从我的初看起来来看, 这可能是不可能的, 因为为了获取所有模板, 该类利用了内部函数名为scandir(), 它将扫描当前主题目录并从那里获取所有.php文件。然后, 它查找相应的Template Name:标识符, 如果存在, 则将其添加到模板列表中。
因此, 我建议你添加一些JS, 以将其从页面模板选择中删除。这是一个代码片段:
function my_remove_page_template() { global $pagenow; if ( in_array( $pagenow, array( 'post-new.php', 'post.php') ) & & get_post_type() == 'page' ) { ?> < script type="text/javascript"> (function($){ $(document).ready(function(){ $('#page_template option[value="http://www.srcmini.com/sidebar-page.php"]').remove(); }) })(jQuery) < /script> < ?php } } add_action('admin_footer', 'my_remove_page_template', 10);

这将从下拉列表中删除模板sidebar-page.php。条件是为了使脚本仅添加到页面的添加和编辑屏幕上。
适应你的情况并享受:)
#2 【如何在WordPress中隐藏模板( [关闭])】WordPress没有提供任何挂钩, 因此你无法将其从PHP中删除。
我想到的一种替代方法是, 你可以使用JavaScript动态删除它。在添加帖子页面中添加JavaScript片段, 这将从select元素中删除该选项。
我知道这不是一个干净的解决方案, 但是我认为这是到目前为止唯一可能的方法。
编辑:
另一个选项是在激活插件时将模板文件复制到主题目录, 并在禁用插件时删除模板文件。
这假定该模板仅由该插件使用。

    推荐阅读