我有一个独特的问题,我整个周末都在努力解决,希望有人能帮我澄清一下。。我有几个ACF组,我已经指定在帖子和页面编辑页面上显示。尽管我(以编程方式(将值存储在页面的ACF字段中,但我需要在页面编辑屏幕上隐藏该组,但仍在编辑后屏幕中显示它。
以下代码一直有效,直到我试图找到一个条件来识别用户是否在页面编辑屏幕上,而不是在编辑后屏幕上
function my_remove_meta_boxes() {
if ( get_post_type() == 'page' )
{
$out = '';
$out .= '<style>#acf-group_61699b806807f {display: none !important;} </style>';
echo $out;
}
}
add_action( 'admin_menu' , 'my_remove_meta_boxes' );
如果尝试过getcurrentscreen、ispage和getpost_type,但似乎都不起作用。任何帮助都是巨大的。谢谢
您必须使用get_current_screen()
函数,它将为您提供屏幕对象,并且您将在if语句中匹配屏幕id。
您还需要使用admin_head
来编写带有style
标记的自定义css。
代码如下:
function vh_acf_remove_meta_boxes() {
$screen = get_current_screen();
$screen_id = $screen->id ? $screen->id : '';
if ( 'page' === $screen_id ) {
echo '<style>#acf-group_61699b806807f {display: none !important;}</style>';
}
}
add_action( 'admin_head', 'vh_acf_remove_meta_boxes' );