我想修改管理员,以便在有人使用默认模板时删除默认文本编辑器。(如果他们手动选择默认以外的内容,请保留编辑器)。
if ($currentPage == \'Default Template\') {
remove_post_type_support( \'page\', \'editor\' );
}
因此,我正在寻找一种方法来确定加载时所选的页面模板,并在此基础上执行操作。如果运行此查询,我将尝试执行以下操作:
add_action(\'init\', function () {
var_dump(wp_get_theme()->get_page_templates());
});
在新主题上,它返回一个数组
template-custom.blade.php
. 但当我运行此命令时:
add_action(\'init\', function () {
var_dump(get_page_template());
});
它返回
page.php
. 如果我将页面切换到“自定义模板”并保存。即使重新加载,它仍会返回
page.php
. 我的选择是什么?
我也在init
也没用。
$template_filename = get_post_meta( get_the_ID(), \'_wp_page_template\', true );
好吧,我应该
remove_post_type_support
在
init
钩子,但想知道模板信息是否可用。
最合适的回答,由SO网友:Antti Koskinen 整理而成
我从这里的答案中选择了以下代码,https://stackoverflow.com/questions/2544870/remove-main-editor-from-wordpress-edit-page-screen/42093956. 我调整了代码,使用默认页面模板删除页面上的经典编辑器。并添加了评论。
function remove_editor_init() {
$post_id = 0;
if ( isset( $_GET[\'post\'] ) ) {
$post_id = $_GET[\'post\'];
}
$template_file = get_post_meta( $post_id, \'_wp_page_template\', TRUE );
// var_dump($template_file) to see which template the page is using
// no value on new pages and when template haven\'t been changed yet
// default if changed back to default template
if ( ! $template_file || \'default\' === $template_file ) {
remove_post_type_support( \'page\', \'editor\' );
}
}
add_action( \'admin_init\', \'remove_editor_init\' );
这在我的本地WP安装中起到了作用,也许你可以试试?