{"id":329646,"date":"2026-06-21T23:29:39","date_gmt":"2026-06-21T23:29:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/effortless-visual-sitemap\/"},"modified":"2026-06-22T07:18:24","modified_gmt":"2026-06-22T07:18:24","slug":"effortless-visual-sitemap","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/effortless-visual-sitemap\/","author":23148025,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.34","stable_tag":"1.0.34","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"EffortLess Visual Sitemap","header_author":"domclic","header_description":"Beautiful, categorized visual sitemap using WordPress core sitemaps \u2014 pure CSS accordion.","assets_banners_color":"9e9e9e","last_updated":"2026-06-22 07:18:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/id7.dev\/donate\/?plugin=effortless-visual-sitemap","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/domclic\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.33":{"tag":"1.0.33","author":"domclic","date":"2026-06-21 23:28:56"},"1.0.34":{"tag":"1.0.34","author":"domclic","date":"2026-06-22 07:18:24"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3581053,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3581053,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3581053,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3581053,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.33","1.0.34"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1953,186,1557,141851,6358],"plugin_category":[34,55],"plugin_contributors":[241557],"plugin_business_model":[],"class_list":["post-329646","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-seo","plugin_tags-sitemap","plugin_tags-visual-sitemap","plugin_tags-xml-sitemap","plugin_category-accessibility","plugin_category-seo-and-marketing","plugin_contributors-domclic","plugin_committers-domclic"],"banners":{"banner":"https:\/\/ps.w.org\/effortless-visual-sitemap\/assets\/banner-772x250.jpg?rev=3581053","banner_2x":"https:\/\/ps.w.org\/effortless-visual-sitemap\/assets\/banner-1544x500.jpg?rev=3581053","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/effortless-visual-sitemap\/assets\/icon-128x128.jpg?rev=3581053","icon_2x":"https:\/\/ps.w.org\/effortless-visual-sitemap\/assets\/icon-256x256.jpg?rev=3581053","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Clean accordion sitemap using core sitemaps. Supports custom slugs + hide groups.<\/p>\n\n<h3>Shortcode Attributes<\/h3>\n\n<ul>\n<li>title=\"Site Map\"<\/li>\n<li>expand=\"yes\"<\/li>\n<li>show_title=\"no\"<\/li>\n<li>hide_groups=\"authors,categories,tags\" (comma-separated, lowercase)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload plugin<\/li>\n<li>Activate<\/li>\n<li>Use [elsmg_visual_sitemap]<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.34<\/h4>\n\n<ul>\n<li>Fix: update plugin name casing to EffortLess; add plugin identifier to donate link.<\/li>\n<\/ul>\n\n<h4>1.0.33<\/h4>\n\n<ul>\n<li>Fix: rename shortcode tag from generic 'visual_sitemap' to prefixed 'elsmg_visual_sitemap' to prevent naming conflicts (WordPress.org review requirement)<\/li>\n<\/ul>\n\n<h4>1.0.32<\/h4>\n\n<ul>\n<li>Security: fix SSRF \u2014 validate sub-sitemap  host before fetching; use wp_safe_remote_get()<\/li>\n<li>Security: fix XXE \u2014 add LIBXML_NONET flag and disable entity loader on PHP 7.x<\/li>\n<li>Security: filter collected URLs to same-host only (defence-in-depth against foreign slug leakage)<\/li>\n<li>Fix: posts now classified accurately using WP core sitemap sub-index type metadata (fixes \/%postname%\/ sites where all posts were shown as Pages)<\/li>\n<li>Fix: cache key now includes per-site salt (AUTH_KEY \/ DB_NAME) to prevent collisions on shared object-cache backends<\/li>\n<li>Fix: guard $wp_rewrite-&gt;author_base against null \/ empty \u2014 falls back to 'author'<\/li>\n<li>Fix: empty category_base \/ tag_base option no longer produces '\/\/' prefix that silently misroutes all taxonomy archives<\/li>\n<li>Fix: CSS moved to wp_enqueue_style() + wp_add_inline_style() \u2014 no more body-level  tag after closing <\/li>\n<li>Fix: admin notice strings now translated and properly escaped<\/li>\n<\/ul>\n\n<h4>1.0.31<\/h4>\n\n<ul>\n<li>Code review fixes: cache key helper, URL grouping bug fix (leading slash on bases), CSS dedup guard, removed redundant save_post hook, settings callback simplified, Requires at least bumped to 5.9<\/li>\n<\/ul>\n\n<h4>1.0.30<\/h4>\n\n<ul>\n<li>Added CLAUDE.md with codebase documentation<\/li>\n<\/ul>\n\n<h4>1.0.29<\/h4>\n\n<ul>\n<li>Robust grouping with custom category\/tag\/author bases<\/li>\n<li>Added hide_groups shortcode attribute<\/li>\n<\/ul>\n\n<h4>1.0.28<\/h4>\n\n<ul>\n<li>WPCS\/PHPCS compliance<\/li>\n<li>Plugin Check fixes<\/li>\n<\/ul>","raw_excerpt":"Beautiful categorized visual sitemap from WordPress core sitemaps \u2013 pure CSS.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329646","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=329646"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/domclic"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329646"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329646"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329646"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329646"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329646"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}