Replace a WordPress Cover block image conditionally, using an ACF field in this example.
add_filter( 'render_block', function( $block_content, $block ) {
// Cover Only
if( $block['blockName'] != 'core/cover' ) {
return $block_content;
}
// Require ACF
if( ! function_exists( 'get_field' ) ) {
return $block_content;
}
// Current Object
$term = get_queried_object();
// Try Single Post Banner
$banner_image = get_field( 'banner_image', $term );
// Special Field Types
if( ! empty( $banner_image['url'] ) ) {
$banner_image = $banner_image['url'];
}
// Replace Cover Image
if( $banner_image ) {
$block_content = str_replace(
'https://mysite.com/wp-content/uploads/2021/12/Placeholder.jpg',
$banner_image, $block_content
);
}
// Return
return $block_content;
}, 10, 2 );