{"id":326699,"date":"2026-06-17T20:12:49","date_gmt":"2026-06-17T20:12:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cascading-dropdown-redirect-block-elmspur-cascade\/"},"modified":"2026-06-17T20:12:25","modified_gmt":"2026-06-17T20:12:25","slug":"elmspur-cascade","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/elmspur-cascade\/","author":23515062,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Elmspur Cascade \u2013 Dropdown Redirect","header_author":"Elmspur","header_description":"A cascading dropdown redirect block for the WordPress block editor. Visitors pick from dependent dropdowns and are redirected to the matching URL. No form builder needed.","assets_banners_color":"","last_updated":"2026-06-17 20:12:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/elmspur.com\/","header_author_uri":"https:\/\/elmspur.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"elmspur","date":"2026-06-17 20:12:25"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"crd\/cascading-redirect":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"crd\/cascading-redirect","title":"Cascading Redirect Dropdowns","category":"widgets","icon":"randomize","description":"Dependent dropdowns: each selection filters the next level, and the final choice redirects the visitor.","keywords":["dropdown","redirect","cascading","select","menu"],"textdomain":"elmspur-cascade","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"attributes":{"menuData":{"type":"string","default":"[\n  {\n    \"label\": \"Category A\",\n    \"children\": [\n      {\n        \"label\": \"Subcategory A1\",\n        \"children\": [\n          { \"label\": \"Page one\", \"url\": \"https:\/\/example.com\/a\/a1\/one\" },\n          { \"label\": \"Page two\", \"url\": \"https:\/\/example.com\/a\/a1\/two\" }\n        ]\n      },\n      {\n        \"label\": \"Subcategory A2\",\n        \"children\": [\n          { \"label\": \"Page one\", \"url\": \"https:\/\/example.com\/a\/a2\/one\" },\n          { \"label\": \"Page two\", \"url\": \"https:\/\/example.com\/a\/a2\/two\" }\n        ]\n      }\n    ]\n  },\n  {\n    \"label\": \"Category B\",\n    \"children\": [\n      {\n        \"label\": \"Subcategory B1\",\n        \"children\": [\n          { \"label\": \"Page one\", \"url\": \"https:\/\/example.com\/b\/b1\/one\" }\n        ]\n      }\n    ]\n  }\n]"},"placeholder1":{"type":"string","default":"Select a category\u2026"},"placeholder2":{"type":"string","default":"Select an option\u2026"},"placeholder3":{"type":"string","default":"Select a destination\u2026"},"autoRedirect":{"type":"boolean","default":false},"newTab":{"type":"boolean","default":false},"buttonLabel":{"type":"string","default":"Go"},"savedMenuId":{"type":"string","default":""}},"editorScript":"file:.\/editor.js","editorStyle":"file:.\/editor.css","viewScript":"file:.\/view.js","style":"file:.\/style.css"},"crd\/cascading-redirect-nav":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"crd\/cascading-redirect-nav","title":"Cascading Dropdowns \u2014 Menu Item","category":"widgets","icon":"randomize","description":"A compact cascading dropdown that lives inside the Navigation block, inline with your menu links.","keywords":["dropdown","redirect","menu"],"textdomain":"elmspur-cascade","parent":["core\/navigation"],"supports":{"html":false,"reusable":false},"attributes":{"menuData":{"type":"string","default":"[\n  {\n    \"label\": \"Category A\",\n    \"children\": [\n      {\n        \"label\": \"Subcategory A1\",\n        \"children\": [\n          { \"label\": \"Page one\", \"url\": \"https:\/\/example.com\/a\/a1\/one\" },\n          { \"label\": \"Page two\", \"url\": \"https:\/\/example.com\/a\/a1\/two\" }\n        ]\n      }\n    ]\n  }\n]"},"placeholder1":{"type":"string","default":"Go to\u2026"},"placeholder2":{"type":"string","default":"Then\u2026"},"placeholder3":{"type":"string","default":"Finally\u2026"},"autoRedirect":{"type":"boolean","default":true},"newTab":{"type":"boolean","default":false},"buttonLabel":{"type":"string","default":"Go"},"savedMenuId":{"type":"string","default":""}},"editorScript":"crd-cascading-redirect-editor-script","editorStyle":"crd-cascading-redirect-editor-style","viewScript":"crd-cascading-redirect-view-script","style":"crd-cascading-redirect-style"}},"tagged_versions":["1.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3576314,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3576314,"resolution":"2","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"The visual menu tree builder in the block editor \u2014 add, edit, nest, and reorder dropdown items without touching JSON.","2":"The cascading dropdowns on the front end \u2014 each selection filters the next level, and the final choice redirects the visitor."}},"plugin_section":[],"plugin_tags":[148857,267611,267613,267612,727],"plugin_category":[],"plugin_contributors":[267614],"plugin_business_model":[],"class_list":["post-326699","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-cascading-dropdown","plugin_tags-dependent-dropdown","plugin_tags-dropdown-redirect","plugin_tags-redirect","plugin_contributors-elmspur","plugin_committers-elmspur"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/elmspur-cascade.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/elmspur-cascade\/assets\/screenshot-1.png?rev=3576314","caption":"The visual menu tree builder in the block editor \u2014 add, edit, nest, and reorder dropdown items without touching JSON."},{"src":"https:\/\/ps.w.org\/elmspur-cascade\/assets\/screenshot-2.png?rev=3576314","caption":"The cascading dropdowns on the front end \u2014 each selection filters the next level, and the final choice redirects the visitor."}],"raw_content":"<!--section=description-->\n<p>Elmspur Cascade adds a cascading dropdown redirect block to the WordPress block editor. Visitors pick from one or more dependent dropdowns \u2014 for example Category \u2192 Topic \u2192 Page \u2014 and are redirected to the URL attached to their final choice. No form plugin or shortcode is required.<\/p>\n\n<p>Each dropdown filters the next: choosing a value in one level determines the options available in the next. When the visitor reaches an item that has a URL, they are sent to it \u2014 either immediately, or after clicking a button you can label yourself.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Native block<\/strong> \u2014 works in posts, pages, the Site Editor, templates, template parts, and block widget areas. Compatible with FSE\/block themes.<\/li>\n<li><strong>Visual tree builder<\/strong> \u2014 point-and-click interface to add, edit, nest, and reorder dropdown items without touching JSON.<\/li>\n<li><strong>Up to 5 levels<\/strong> of dependent dropdowns. Branches don't have to reach the maximum; a 2-level branch redirects from level 2 and remaining dropdowns stay disabled.<\/li>\n<li><strong>Redirect immediately<\/strong> on final selection, or show a button the visitor clicks to go.<\/li>\n<li><strong>Open in a new tab<\/strong> option.<\/li>\n<li><strong>Custom placeholder text<\/strong> for each level.<\/li>\n<li><strong>Navigation block variant<\/strong> \u2014 a compact version that lives inside the core Navigation block, inline with your other menu links.<\/li>\n<li>Wide and full alignment support; inherits your theme's button styles.<\/li>\n<li>No form builder required. No shortcodes. No build step.<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li><strong>Support sites:<\/strong> Product \u2192 Issue Type \u2192 Help article<\/li>\n<li><strong>Multi-location businesses:<\/strong> Country \u2192 City \u2192 Location page<\/li>\n<li><strong>Course sites:<\/strong> Subject \u2192 Course \u2192 Lesson<\/li>\n<\/ul>\n\n<h4>Companion add-on<\/h4>\n\n<p>A separate add-on, distributed from elmspur.com (not from WordPress.org), adds saved\/reusable dropdown trees: define a tree once, link it to as many blocks as you like, and edits propagate site-wide. It is optional \u2014 this plugin is fully functional on its own.<\/p>\n\n<h3>The JSON format<\/h3>\n\n<p>An array of items. Each item has a \"label\" and either \"children\" (an array of more items) or a \"url\".<\/p>\n\n<p>[\n  {\n    \"label\": \"Category A\",\n    \"children\": [\n      {\n        \"label\": \"Subcategory A1\",\n        \"children\": [\n          { \"label\": \"Page one\",  \"url\": \"https:\/\/example.com\/a\/a1\/one\" },\n          { \"label\": \"Page two\",  \"url\": \"https:\/\/example.com\/a\/a1\/two\" }\n        ]\n      }\n    ]\n  }\n]<\/p>\n\n<h3>Settings (block sidebar)<\/h3>\n\n<ul>\n<li>Menu data \u2014 the JSON hierarchy (also editable via the visual tree builder).<\/li>\n<li>Redirect immediately on final selection \u2014 skip the Go button.<\/li>\n<li>Open in a new tab.<\/li>\n<li>Button label.<\/li>\n<li>Placeholder text for each level.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In wp-admin go to <strong>Plugins \u2192 Add New Plugin<\/strong> and search for <strong>Elmspur Cascade<\/strong> \u2014 or download the zip and use <strong>Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Edit any post, page, or template and insert the <strong>Cascading Redirect Dropdowns<\/strong> block.<\/li>\n<li>Click <strong>Open menu builder<\/strong> in the block sidebar to build your dropdown tree, adding a URL to each item that should be a destination.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20a%20form%20plugin%3F\"><h3>Does this require a form plugin?<\/h3><\/dt>\n<dd><p>No. Elmspur Cascade is a standalone native block with no dependencies. Install and activate it, and the block is immediately available in the editor.<\/p><\/dd>\n<dt id=\"how%20many%20dropdown%20levels%20can%20i%20have%3F\"><h3>How many dropdown levels can I have?<\/h3><\/dt>\n<dd><p>Up to 5 cascade levels. Each branch only renders as many dropdowns as it actually uses \u2014 a 2-level branch redirects from level 2 and leaves remaining dropdowns disabled.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. It's a native WordPress block that inherits your theme's styles. The Go button uses the core button element, so it picks up your theme's button colors, typography, and border radius automatically.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20site%20down%3F\"><h3>Does it slow my site down?<\/h3><\/dt>\n<dd><p>No. The front-end script is small and dependency-free \u2014 no jQuery, no external requests. It uses <code>viewScript<\/code> in block.json, so it only loads on pages that actually contain the block.<\/p><\/dd>\n<dt id=\"can%20the%20final%20selection%20open%20in%20a%20new%20tab%3F\"><h3>Can the final selection open in a new tab?<\/h3><\/dt>\n<dd><p>Yes. Toggle <strong>Open in a new tab<\/strong> in the block sidebar.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Cascade depth is no longer gated behind a license \u2014 menus can use up to 5 dependent levels for everyone, both in the visual builder and on the front end.<\/li>\n<li>Renamed to Elmspur Cascade \u2013 Dropdown Redirect.<\/li>\n<li>Readme: clarified feature descriptions.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Security: URL values in dropdown trees are now sanitized server-side with esc_url_raw() before output; javascript: URIs and other non-safe schemes are also blocked client-side in view.js as defence-in-depth.<\/li>\n<li>Code: Removed an orphaned\/unclosed comment block that was merging into the crd_tree_depth docblock.<\/li>\n<li>Block: Default example URLs in block.json replaced with example.com placeholders.<\/li>\n<li>Readme: Added FAQ section; installation instructions updated.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Levels are now dynamic: the block renders one dropdown per level your menu actually uses (a 2-level menu shows 2 dropdowns).<\/li>\n<li>New crd_menu_data extensibility filter and a savedMenuId attribute.<\/li>\n<li>No changes required to existing blocks.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Cascading Dropdowns - Menu Item\" companion block. Open the Navigation block in the Site Editor, click +, and insert it inline between your menu links. Compact styling sized to nav bars; auto-redirect on by default; stacks vertically inside the mobile menu overlay.<\/li>\n<li>Both blocks share the same tree builder, settings, and data format.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: point-and-click menu tree builder. Select the block and click \"Open menu builder\" (sidebar) or \"Edit menu tree\" (canvas). Add, edit, reorder, nest, and delete items without touching JSON.<\/li>\n<li>The JSON editor moved to a collapsed \"Advanced (JSON)\" panel. Data format is unchanged \u2014 blocks created with 1.0.0 work as-is.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Add a cascading dropdown to WordPress that redirects visitors on selection \u2014 no form builder needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326699","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=326699"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elmspur"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326699"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326699"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326699"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326699"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326699"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}