是否在自定义帖子类型中禁用拖动元对象?

时间:2018-03-12 作者:jockebq

我可以使用此功能禁用在站点范围内拖动元数据库:

function disable_drag_metabox() {
wp_deregister_script(\'postbox\');
}
add_action( \'admin_init\', \'disable_drag_metabox\' );
但我只想在自定义帖子类型上使用它。我尝试了通常的方法:

function disable_drag_metabox() {
global $current_screen;
if( \'event\' == $current_screen->post_type ) wp_deregister_script(\'postbox\');
}
add_action( \'admin_init\', \'disable_drag_metabox\' );
还有这个:

function disable_drag_metabox() {
$screen = get_current_screen();
if( in_array( $screen->id, array( \'event\' ) ) ) {
    wp_deregister_script(\'postbox\');
}
}
add_action( \'admin_init\', \'disable_drag_metabox\' );
遗憾的是,它不起作用。我做错了什么?自定义帖子类型称为事件。

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

当前屏幕未在上设置admin_init 钩这就是为什么global $current_screenget_current_screen() 不要工作。

每个管理页面都有一个load-something 设置当前屏幕后激发的挂钩。既然您说这是针对事件自定义帖子类型,那么应该使用load-post.php 钩因此,您的代码如下所示:

function disable_drag_metabox() {
  if( \'events\' === get_current_screen()->post_type ) {
    wp_deregister_script( \'postbox\' );
  }
}
add_action( \'load-post.php\', \'disable_drag_metabox\' );
您可以使用Query Monitor 插件,以确定每个页面上的钩子和顺序。它还做很多其他的烹饪工作。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register