在页面编辑时隐藏ACF元数据库,但在后期编辑时显示



我有一个独特的问题,我整个周末都在努力解决,希望有人能帮我澄清一下。。我有几个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' );

最新更新