除了@Milo链接的解决方案之外,另一个选项是从字段组中删除类别规则,并使用jQuery控制此ACF组的可见性。
因此,假设带有ACF字段的元框具有id#acf_79
并且您希望将其分配给ID为的类别1
, 渲染为#in-category-1
在类别元框中,将执行以下操作
使用浏览器检查器获取正确的ID
add_action( \'admin_footer-post.php\', \'conditional_acf_metabox_wpse_78772\' );
add_action( \'admin_footer-post-new.php\', \'conditional_acf_metabox_wpse_78772\' );
function conditional_acf_metabox_wpse_78772()
{
// Not our post type, do nothing. Adjust if using another post_type.
global $current_screen;
if ( \'post\' != $current_screen->post_type )
return;
?>
<script type="text/javascript">
jQuery(document).ready( function($)
{
// For a smoother effect, hide the box with CSS and show it if "is(\':checked\')"
if( ! $(\'#in-category-1\').attr(\'checked\') )
$(\'#acf_79\').hide();
// Watch the behavior of Category 1 checkbox
$(\'#in-category-1\').change( function ()
{
// Show/Hide the ACF meta box
if( $(this).is(\':checked\') )
{
$(\'#acf_79\').slideDown();
}
else
{
$(\'#acf_79\').slideUp();
}
});
});
</script>
<?php
}