PHP
add_filter('render_block', 'add_alt_tags', 10, 2);
function add_alt_tags($content, $block){
$block_name = $block['blockName'];
$target_blocks = [
'core/image',
'generateblocks/image'
];
if( !in_array($block_name, $target_blocks) ) return $content;
switch($block_name){
case 'generateblocks/image':
$id = $block['attrs']['mediaId'];
break;
default:
$id = $block['attrs']['id'];
break;
}
$alt = get_post_meta( $id, '_wp_attachment_image_alt', true );
if( empty( $alt ) ) return $content;
// Empty alt
if( false !== strpos( $content, 'alt=""' ) ) {
$content = str_replace( 'alt=""', 'alt="' . $alt . '"', $content );
// No alt
} elseif( false === strpos( $content, 'alt="' ) ) {
$content = str_replace( 'src="', 'alt="' . $alt . '" src="', $content );
}
return $content;
}