wpseek.com
A WordPress-centric search engine for devs and theme authors



block_core_gallery_dynamic_image_link_attributes › WordPress Function

Since7.0.0
Deprecatedn/a
block_core_gallery_dynamic_image_link_attributes ( $attachment_id, $attributes )
Parameters: (2)
  • (int) $attachment_id The image attachment ID.
    Required: Yes
  • (array) $attributes The gallery block attributes.
    Required: Yes
Returns:
  • (array) Partial image block attributes (`href`, `linkDestination`,
    `linkTarget`, `rel`, `lightbox`).
Defined at:
Codex:

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).


Source

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;
}