移除 WordPress 文章/页面编辑页内的各个模块(文章内容编辑器等)

注意:这里说的是移除,不是隐藏。隐藏可以在右上角的“显示选项”中操作,但是这个选项不能隐藏所有的模块,比如文章编辑器窗口。

今天有个活就是要去掉这个编辑器窗口,下面我们总结、探索一下该怎么实现。

移除文章编辑页里的 Meta 模块

add_action('admin_menu','remove_my_post_metaboxes');
function remove_my_post_metaboxes() {

remove_meta_box( 'authordiv','post','normal' ); // 作者模块
remove_meta_box( 'commentstatusdiv','post','normal' ); // 评论状态模块
remove_meta_box( 'commentsdiv','post','normal' ); // 评论模块
remove_meta_box( 'postcustom','post','normal' ); // 自定义字段模块
remove_meta_box( 'postexcerpt','post','normal' ); // 摘要模块
remove_meta_box( 'revisionsdiv','post','normal' ); // 修订版本模块
remove_meta_box( 'slugdiv','post','normal' ); // 别名模块
remove_meta_box( 'trackbacksdiv','post','normal' ); // 引用模块

remove_meta_box( 'categorydiv','post','normal' ); // 分类模块
remove_meta_box( 'formatdiv','post','normal' ); // 文章格式模块
remove_meta_box( 'submitdiv','post','normal' ); // 发布模块
remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // 标签模块

}

移除 Page页 编辑页里的 Meta 模块

add_action('admin_menu','remove_my_page_metaboxes');
function remove_my_page_metaboxes() {

remove_meta_box( 'postcustom','page','normal' ); // 自定义字段模块
remove_meta_box( 'postexcerpt','page','normal' ); // 摘要模块
remove_meta_box( 'commentstatusdiv','page','normal' ); // 评论模块
remove_meta_box( 'pageparentdiv','page','normal' ); // 页面属性模块
remove_meta_box( 'slugdiv','page','normal' ); // 别名模块
remove_meta_box( 'authordiv','page','normal' ); // 作者模块
remove_meta_box( 'submitdiv','page','normal' ); // 发布模块

}

移除文章/页面编辑页里的 特色图 模块
其实这个比较鸡肋,因为只要在主题中不加入显示特色图的代码就可以;用不着加入了之后再移除。所以,此代码未测试;喜欢折腾的可以自行试试。

add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box() {
remove_meta_box( 'postimagediv','post','side' );
}

移除文章/页面编辑页里的 自定义 模块

add_action('do_meta_boxes', 'remove_new_custom_box');
function remove_new_custom_box() {
remove_meta_box( 'postmeta_post_boxes_add_default','post','normal' );

这个地方需要说明一下,如下图,postmeta_post_boxes_add_default 处是自定义模块的 id

移除特定页面编辑页里的 内容编辑器 模块

add_action( 'admin_init', 'jianzhanmi_remove_editor' );
function jianzhanmi_remove_editor() {

$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
if( !isset( $post_id ) ) return;

$template_file = get_post_meta($post_id, '_wp_page_template', true);

if($template_file == 'contact.php'){ // 你的页面模板php文件名,包括后缀
remove_post_type_support('page', 'editor');
}

}

有了特定页面模板的方法,那么所有页面的移除方法就呼之欲出了;这里就不展开了;可自行折腾。

回归正题,我们一开始的目的是移除文章编辑页面里的编辑器。从这段代码中可找到灵感。

add_action( 'admin_init', 'jianzhanmi_remove_editor' );
function jianzhanmi_remove_editor() {

remove_post_type_support('post', 'editor'); // 移除文章编辑页内的编辑器
remove_post_type_support('post', 'title'); // 移除文章编辑页内的标题

remove_post_type_support('page', 'editor'); // 移除页面编辑页内的编辑器
remove_post_type_support('page', 'title'); // 移除页面编辑页内的标题

}

经测试,果然达到了效果。