block_core_gallery_dynamic_image_link_attributes()
Builds the link-related image block attributes for a dynamically rendered gallery image, mapping the gallery-wide linkTo setting onto a single image.
Mirrors the editor's getHrefAndDestination() (see gallery/utils.js).
No Hooks.
Returns
array. Partial image block attributes (href, linkDestination, linkTarget, rel, lightbox).
Usage
block_core_gallery_dynamic_image_link_attributes( $attachment_id, $attributes );
- $attachment_id(int) (required)
- The image attachment ID.
- $attributes(array) (required)
- The gallery block attributes.
Changelog
| Since 7.0.0 | Introduced. |
block_core_gallery_dynamic_image_link_attributes() block core gallery dynamic image link attributes code WP 7.1
function block_core_gallery_dynamic_image_link_attributes( $attachment_id, $attributes ) {
$link_to = $attributes['linkTo'] ?? 'none';
$attrs = array();
switch ( $link_to ) {
// Gutenberg uses 'media'/'attachment'; WP Core uses 'file'/'post'.
case 'media':
case 'file':
$attrs['href'] = wp_get_attachment_url( $attachment_id );
$attrs['linkDestination'] = 'media';
break;
case 'attachment':
case 'post':
$attrs['href'] = get_attachment_link( $attachment_id );
$attrs['linkDestination'] = 'attachment';
break;
case 'lightbox':
$attrs['linkDestination'] = 'none';
$attrs['lightbox'] = array( 'enabled' => true );
break;
}
if ( ! empty( $attrs['href'] ) && '_blank' === ( $attributes['linkTarget'] ?? '' ) ) {
$attrs['linkTarget'] = '_blank';
$attrs['rel'] = 'noopener';
}
return $attrs;
}