I am attempting to create a basic, accessible link wrapper for core WP group blocks. There are plugins available that provide this functionality, so I thought why not just use ACF. However, from what I am seeing, it does not appear that an HTML A tag can be used to wrap InnerBlocks. Using the code below, InnerBlocks is output outside the initial A tag, and multiple elements within InnerBlocks are repeatedly wrapped with the same A tag. My goal is to create linked cards (group blocks that contain images, text, misc, etc).
Is there a requirement to only wrap InnerBlocks with a DIV? Or is my code not correct for the proper output? Thanks for any assistance.
// Block anchor/ID.
$block_id = 'group-link-' . $block['id'];
// Check for custom anchor.
if (!empty($block['anchor'])) {
$block_id = esc_attr($block['anchor']);
}
// Block class.
$className = 'block-group-link';
// Check for custom classes.
if (!empty($block['className'])) {
$className .= ' ' . esc_attr($block['className']);
}
// Allowed inner blocks (array).
$allowed_blocks = ['core/group'];
// ACF fields.
$link = get_field('group_link');
$link_url = $link['url'];
$link_title = $link['title'];
$link_target = $link['target'] ? $link['target'] : '_self';
?>
<a>" href="<?php echo esc_url($link_url); ?>" target="<?php echo esc_attr($link_target); ?>" role="link"
aria-description="<?php echo esc_html($link_title); ?>" class="<?php echo $className; ?>">
<InnerBlocks allowedBlocks="<?php echo esc_attr(wp_json_encode($allowed_blocks)) ?>" />
</a>
I just realized my code was garbled when pasting. The correct code is:
<a href="<?php echo esc_url($link_url); ?>" target="<?php echo esc_attr($link_target); ?>" role="link"
aria-description="<?php echo esc_html($link_title); ?>" class="<?php echo $className; ?>">
<InnerBlocks allowedBlocks="<?php echo esc_attr(wp_json_encode($allowed_blocks)) ?>" />
</a>
You must be logged in to reply to this topic.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.