{"id":397824,"date":"2026-11-06T09:28:32","date_gmt":"2026-11-06T09:28:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wholelink-make-group-column-and-cover-blocks-clickable\/"},"modified":"2026-11-06T09:28:11","modified_gmt":"2026-11-06T09:28:11","slug":"wholelink","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wholelink\/","author":23566752,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Wholelink - Make Group, Column and Cover Blocks Clickable","header_author":"Mykyta Dudariev","header_description":"Turns a whole Group, Row, Column or Cover block into one link, including post cards in a Query Loop, without JavaScript on the front end.","assets_banners_color":"b7a2d5","last_updated":"2026-11-06 09:28:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/measuredcode.com\/work\/wholelink\/","header_author_uri":"https:\/\/measuredcode.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":260,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mykytadudariev","date":"2026-11-06 09:28:11","revision":3787596}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3787596,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3787596,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3787596,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3787596,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3787596,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3787596,"resolution":"2","location":"assets","locale":"","width":741,"height":417}},"screenshots":{"1":"A Query Loop post card in the editor: the link button in the block toolbar offers Link to this post first, and the block settings show the Whole block link panel.","2":"Query Loop post cards on the front end. Each card is one link and the hovered card's title is underlined; the category and Read more links inside still work on their own."}},"plugin_section":[],"plugin_tags":[263435,291114,291113,291112,213445],"plugin_category":[],"plugin_contributors":[289033,281342],"plugin_business_model":[],"class_list":["post-397824","plugin","type-plugin","status-publish","hentry","plugin_tags-block-link","plugin_tags-clickable-column-block","plugin_tags-clickable-cover-block","plugin_tags-clickable-group-block","plugin_tags-query-loop","plugin_contributors-measuredcode","plugin_contributors-mykytadudariev","plugin_committers-mykytadudariev"],"banners":{"banner":"https:\/\/ps.w.org\/wholelink\/assets\/banner-772x250.png?rev=3787596","banner_2x":"https:\/\/ps.w.org\/wholelink\/assets\/banner-1544x500.png?rev=3787596","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wholelink\/assets\/icon-128x128.png?rev=3787596","icon_2x":"https:\/\/ps.w.org\/wholelink\/assets\/icon-256x256.png?rev=3787596","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wholelink\/assets\/screenshot-1.png?rev=3787596","caption":"A Query Loop post card in the editor: the link button in the block toolbar offers Link to this post first, and the block settings show the Whole block link panel."},{"src":"https:\/\/ps.w.org\/wholelink\/assets\/screenshot-2.png?rev=3787596","caption":"Query Loop post cards on the front end. Each card is one link and the hovered card's title is underlined; the category and Read more links inside still work on their own."}],"raw_content":"<!--section=description-->\n<p>Wholelink makes a whole Group, Column or Cover block clickable. Select the block, press the link button in its toolbar and pick a page or paste a URL: visitors can now click anywhere on the block, not only on a heading or a button. It works with the Group block's Row, Stack and Grid variations, and it turns Query Loop post cards into clickable cards that each link to their own post.<\/p>\n\n<p>The block editor has no setting for this: a link can wrap text or a button, but not a whole Group, Column or Cover. Wholelink adds that setting to the core blocks you already use, so there is no extra wrapper block to insert and nothing to rebuild.<\/p>\n\n<p><strong>How to use it<\/strong><\/p>\n\n<ul>\n<li><strong>Link to a page or URL.<\/strong> Select a Group, Row, Stack, Grid, Column or Cover block, press the link button in the block toolbar and search for a page or post, or paste any URL. It is the same link box as on the Button block. You can also use <strong>Add link<\/strong> under <strong>Whole block link<\/strong> in the block settings.<\/li>\n<li><strong>Clickable Query Loop cards.<\/strong> Inside a Query Loop post template, select the Group that holds a post, press the link button and choose <strong>Link to this post<\/strong> at the top. Each card then links to its own post.<\/li>\n<li><strong>Link options.<\/strong> Open the link in a new tab or mark it nofollow or sponsored under <strong>Advanced<\/strong> in the link box, as on the Button block. Set a label for screen readers in the block settings.<\/li>\n<\/ul>\n\n<p><strong>What visitors get<\/strong><\/p>\n\n<ul>\n<li>The whole block is one link: click anywhere on it, middle-click or Ctrl\/Cmd-click to open it in a new tab, or long-press to copy the link. It works with JavaScript turned off and search engines see a normal link.<\/li>\n<li>Links, buttons and form fields inside the block keep working on their own, so a category link inside a post card still goes to the category.<\/li>\n<li>The pointer cursor shows over the whole block and its headings are underlined on hover. Keyboard users reach the block with Tab and see a focus outline around the whole block.<\/li>\n<li>Screen readers announce the link by your label, the post title in a Query Loop, the block's first heading or its text. When a block has no text, such as a Cover with only an image, the image description or the link address is used and the editor asks for a label.<\/li>\n<\/ul>\n\n<p><strong>Lightweight and safe to remove<\/strong><\/p>\n\n<p>Wholelink renders a plain HTML link on the server and adds one small stylesheet only on pages that show a linked block. It loads no JavaScript on the front end, stores no settings and connects to no external service. The link settings live in the block's attributes, so deactivating or deleting the plugin leaves every block valid: the blocks simply stop being links.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install Wholelink through the Plugins screen, or upload it to <code>\/wp-content\/plugins\/<\/code>, and activate it.<\/li>\n<li>Edit a post, page or template, select a Group, Column or Cover block and press the link button in its toolbar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20blocks%20can%20be%20made%20clickable%3F\"><h3>Which blocks can be made clickable?<\/h3><\/dt>\n<dd><p>The core Group block with its Row, Stack and Grid variations, the Column block and the Cover block. Other blocks, such as Columns as a whole or Media &amp; Text, are not supported out of the box.<\/p><\/dd>\n<dt id=\"can%20other%20blocks%20be%20made%20clickable%3F\"><h3>Can other blocks be made clickable?<\/h3><\/dt>\n<dd><p>Developers can add blocks with the <code>wholelink_supported_blocks<\/code> filter, for example in a theme's <code>functions.php<\/code>:<\/p>\n\n<pre><code>add_filter( 'wholelink_supported_blocks', function ( $blocks ) { $blocks[] = 'core\/media-text'; return $blocks; } );\n<\/code><\/pre>\n\n<p>The block then gets the same link button and settings. Only Group, Column and Cover are tested: a block added this way needs a single outer element, and some blocks may need extra CSS before clicks reach the link, so check it on your site.<\/p><\/dd>\n<dt id=\"i%20don%27t%20see%20the%20link%20button.\"><h3>I don't see the link button.<\/h3><\/dt>\n<dd><p>The button appears when the Group, Column or Cover itself is selected, not a heading or paragraph inside it. Click inside the block, then press <strong>Select parent<\/strong> (the first button of the block toolbar) until the toolbar shows Group, Row, Column or Cover, or pick the block in <strong>List View<\/strong>. The button is also in the block settings as <strong>Add link<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20make%20query%20loop%20post%20cards%20clickable%3F\"><h3>How do I make Query Loop post cards clickable?<\/h3><\/dt>\n<dd><p>Put the card's content in a Group inside the Query Loop's post template, select that Group, press the link button and choose <strong>Link to this post<\/strong>, or turn it on under <strong>Whole block link<\/strong> in the block settings. The option shows only inside a post template. If you move such a block out of the Query Loop, it is no longer a link, and the block settings offer to remove the setting.<\/p><\/dd>\n<dt id=\"can%20visitors%20still%20select%20the%20text%20inside%20a%20linked%20block%3F\"><h3>Can visitors still select the text inside a linked block?<\/h3><\/dt>\n<dd><p>Not by dragging with the mouse: the link covers the whole block, so dragging over the text drags the link instead. Clickable cards built from a plain HTML link behave this way; the alternative, a click handler in JavaScript, is invisible to search engines and breaks middle-click.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20content%20if%20i%20deactivate%20or%20delete%20wholelink%3F\"><h3>What happens to my content if I deactivate or delete Wholelink?<\/h3><\/dt>\n<dd><p>Nothing breaks. The blocks open in the editor without \"unexpected or invalid content\" warnings and show on your site as before, just without the link. Wholelink stores nothing outside the blocks. If you activate it again, the links come back, unless you saved the post in the meantime: the editor then drops the link settings it no longer knows.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>It works with block themes and classic themes, as long as the theme shows the block editor's Group, Column and Cover blocks. Its few lines of CSS load only on pages with a linked block. With a classic theme on WordPress before 6.9 they load at the end of the page, which works the same.<\/p><\/dd>\n<dt id=\"does%20it%20add%20javascript%20to%20my%20site%3F\"><h3>Does it add JavaScript to my site?<\/h3><\/dt>\n<dd><p>Only in the block editor. On the front end the link is plain HTML with a few lines of CSS.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Clickable group block, cover block and column block: link a whole block or Query Loop post cards with one plain HTML link, no JavaScript.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=397824"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mykytadudariev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397824"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397824"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397824"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397824"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397824"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}