描述
可以移除文章、页面编辑界面的Meta模块,还可以移除仪表盘的Meta模块。
用法
<?php remove_meta_box( $id, $page, $context ); ?>
参数
$id
(字符串)(必需)所要移除的Meta模块的HTML 的 id 属性。部分可用的 id 如下:
‘authordiv’ – 作者模块
‘categorydiv’ – 分类模块
‘commentstatusdiv’ – 评论状态模块
‘commentsdiv’ – 评论模块
‘formatdiv’ – 文章格式模块
‘pageparentdiv’ – 页面属性模块
‘postcustom’ – 自定义字段模块
‘postexcerpt’ – 摘要模块
‘postimagediv’ – 特色图像模块
‘revisionsdiv’ – 版本模块
‘slugdiv’ – 别名模块
‘submitdiv’ – 发布 模块
‘tagsdiv-post_tag’ – 标签模块
‘trackbacksdiv’ – 发送 trackback 模块
…
默认值:无
$page
(字符串)(必需)要从那个编辑界面移除Meta模块,可用值:
‘post’ – 文章编辑界面
‘page’ – 页面编辑界面
‘attachment’ – 附件编辑界面
‘link’ – 链接编辑界面
‘dashboard’ – 仪表盘
或者已注册的自定义文章类型的编辑界面,例如 ‘my-product’
默认值:无
$context
(字符串)(必需)所要删除的Meta模块所在的位置,可选值:
‘normal’,
‘advanced’,
‘side’.
默认值:无
示例
对非管理员账户,移除文章和链接编辑界面的某些Meta模块:
if (is_admin()) :
function my_remove_meta_boxes() {
if( !current_user_can('manage_options') ) {
remove_meta_box('linktargetdiv', 'link', 'normal');
remove_meta_box('linkxfndiv', 'link', 'normal');
remove_meta_box('linkadvanceddiv', 'link', 'normal');
remove_meta_box('postexcerpt', 'post', 'normal');
remove_meta_box('trackbacksdiv', 'post', 'normal');
remove_meta_box('postcustom', 'post', 'normal');
remove_meta_box('commentstatusdiv', 'post', 'normal');
remove_meta_box('commentsdiv', 'post', 'normal');
remove_meta_box('revisionsdiv', 'post', 'normal');
remove_meta_box('authordiv', 'post', 'normal');
remove_meta_box('sqpt-meta-tags', 'post', 'normal');
}
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;
在文章编辑界面移除自定义字段模块:
<?php
function remove_post_custom_fields() {
remove_meta_box( 'postcustom' , 'post' , 'normal' );
}
add_action( 'admin_menu' , 'remove_post_custom_fields' );
?>
在文章编辑界面移除摘要模块:
<?php
function remove_page_excerpt_field() {
remove_meta_box( 'postexcerpt' , 'page' , 'normal' );
}
add_action( 'admin_menu' , 'remove_page_excerpt_field' );
?>
在页面编辑界面移除作者、评论状态和评论模块:
<?php
function remove_page_fields() {
remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); //removes comments status
remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); //removes comments
remove_meta_box( 'authordiv' , 'page' , 'normal' ); //removes author
}
add_action( 'admin_menu' , 'remove_page_fields' );
?>
如果你想从自定义文章类型中移除某个Meta模块,可以参考下面的例子:
function remove_custom_taxonomy()
{
remove_meta_box($custom_taxonomy_slug.'div', $custom_post_type, 'side' );
// $custom_taxonomy_slug 是自定义Meta模块的别名, 例如 'genre' )
// $custom_post_type 是自定义文章类型的别名,例如 'movies' )
}
add_action( 'admin_menu', 'remove_custom_taxonomy' );
如果有必要,你甚至可以去除“发布”模块:
function remove_publish_box()
{
remove_meta_box( 'submitdiv', 'custom_post_id', 'side' );
}
add_action( 'admin_menu', 'remove_publish_box' );
从仪表盘中移除Meta模块,可以使用下面的代码:
function remove_dashboard_widgets(){
remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概况
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); // 近期评论
remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal'); // 链入链接
remove_meta_box('dashboard_plugins', 'dashboard', 'normal'); // 插件
remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 快速发布
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side'); // 近期草稿
remove_meta_box('dashboard_primary', 'dashboard', 'side'); // WordPress blog
remove_meta_box('dashboard_secondary', 'dashboard', 'side'); // 其它 WordPress 新闻
// 使用 'dashboard-network' 作为第二个参数,可以从多站点网络的仪表盘移除Meta模块
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
源文件
remove_meta_box() 位于 wp-admin/includes/template.php
相关阅读

前晚折腾完slug(别名)函数以后,忽然发现还有一些收尾要做。 因为本来以文章别名作为固定链接,其目的主要就是为了保证I...
目前评论:21 其中:访客 12 博主 9
折腾了一天的又拍云最终还是放弃了,还是用回百度云加速吧!
@明月登楼 又拍云的感觉比不上七牛,百度云加速还是不错的,就是不太稳定。感觉阿里云CDN最稳定
@懿古今 阿里的CDN是付费的,不稳定的话,估计早就被喷成翔了。
@橘子书 说实话我倒是感觉阿里 CDN 真的很一般!甚至某些方面还不如百度云加速!
@明月登楼 它的出现毕竟没有百度云加速早,而且百度云加速的前身加乐速,本来就做的不赖。
@懿古今 是的,深有体会!七牛的我感觉主要是“水煮鱼”的插件太强悍了!
又拍云在这方面太欠缺了!
无固定的 CDN 节点IP白名单我感觉是个很大的”坑“
@明月登楼 难怪你的站点,昨天一直没有css样式,敢情是去折腾又拍云了。
@橘子书 现在已经放弃”折腾“了!
@明月学习笔记Blog
除非出现问题,不然我不会随便撤换,感觉太折腾了。
@明月学习笔记Blog 有时间,不知道干啥的时候,折腾折腾打法时间,过的特快。这个爱好别放下。
@明月登楼 你应该是没配置好