{"id":377189,"date":"2026-10-05T09:29:18","date_gmt":"2026-10-05T09:29:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/accessible-html-sitemap\/"},"modified":"2026-10-05T09:28:49","modified_gmt":"2026-10-05T09:28:49","slug":"parich-accessible-sitemap","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/parich-accessible-sitemap\/","author":15859001,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Parich Accessible Sitemap","header_author":"Mr.Parich Suriya","header_description":"Accessible (WCAG 2.1 AA) HTML sitemap with Thai language support. Use the Parich Accessible Sitemap block or the [parich_sitemap] shortcode.","assets_banners_color":"1d3888","last_updated":"2026-10-05 09:28:49","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buy.stripe.com\/3cIaEW9699pf3dyeAfaMU00","header_plugin_uri":"https:\/\/github.com\/parich\/parich-accessible-sitemap","header_author_uri":"https:\/\/github.com\/parich","rating":0,"author_block_rating":0,"active_installs":0,"downloads":183,"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":"parich","date":"2026-10-05 09:28:49","revision":3728508}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3728508,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3728508,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3728508,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3728508,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3728508,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"parich-accessible-sitemap\/sitemap":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"parich-accessible-sitemap\/sitemap","version":"1.0.0","title":"Parich Accessible Sitemap","category":"widgets","icon":"list-view","description":"An accessible list of the site's pages, posts by category and other content, with jump links to each section.","keywords":["sitemap","site map","\u0e41\u0e1c\u0e19\u0e1c\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c"],"attributes":{"only":{"type":"string","default":""},"sort":{"type":"string","default":""},"order":{"type":"string","default":""},"displayTitle":{"type":"boolean","default":true},"displayCategoryTitleWording":{"type":"boolean","default":true},"headingLevel":{"type":"number","default":2},"showToc":{"type":"boolean","default":true},"onlyPrivate":{"type":"boolean","default":false},"sectionTitles":{"type":"object","default":{}},"postsPerCategory":{"type":"number"},"collapsible":{"type":"string","enum":["","open","closed"],"default":""}},"styles":[{"name":"tree","label":"Tree","isDefault":true},{"name":"list","label":"List"}],"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"textdomain":"parich-accessible-sitemap","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3728508,"resolution":"1","location":"assets","locale":"","width":1200,"height":1500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3728508,"resolution":"2","location":"assets","locale":"","width":1200,"height":711},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3728508,"resolution":"3","location":"assets","locale":"","width":1440,"height":868},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3728508,"resolution":"4","location":"assets","locale":"","width":1118,"height":1524},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3728508,"resolution":"5","location":"assets","locale":"","width":1200,"height":1380}},"screenshots":{"1":"The sitemap as a tree (the default), with its table of contents.","2":"Collapsible categories.","3":"The block in the editor, with its settings.","4":"The settings page.","5":"On a Thai site: Thai translation, Buddhist Era years and Thai dictionary order."}},"plugin_section":[],"plugin_tags":[1953,34700,1557,15774,1956],"plugin_category":[34,55],"plugin_contributors":[284445],"plugin_business_model":[],"class_list":["post-377189","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-html-sitemap","plugin_tags-sitemap","plugin_tags-thai","plugin_tags-wcag","plugin_category-accessibility","plugin_category-seo-and-marketing","plugin_contributors-parich","plugin_committers-parich"],"banners":{"banner":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/banner-772x250.png?rev=3728508","banner_2x":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/banner-1544x500.png?rev=3728508","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/icon.svg?rev=3728508","icon":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/icon.svg?rev=3728508","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/screenshot-1.png?rev=3728508","caption":"The sitemap as a tree (the default), with its table of contents."},{"src":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/screenshot-2.png?rev=3728508","caption":"Collapsible categories."},{"src":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/screenshot-3.png?rev=3728508","caption":"The block in the editor, with its settings."},{"src":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/screenshot-4.png?rev=3728508","caption":"The settings page."},{"src":"https:\/\/ps.w.org\/parich-accessible-sitemap\/assets\/screenshot-5.png?rev=3728508","caption":"On a Thai site: Thai translation, Buddhist Era years and Thai dictionary order."}],"raw_content":"<!--section=description-->\n<p>Parich Accessible Sitemap adds a sitemap page that people can read: your pages, your posts by category, other content types and taxonomies, archives and authors. Add the <strong>Parich Accessible Sitemap<\/strong> block to any page, or use the <code>[parich_sitemap]<\/code> shortcode.<\/p>\n\n<h4>Built for accessibility (WCAG 2.1 AA)<\/h4>\n\n<ul>\n<li>The sitemap is a labelled navigation landmark with real headings (you choose the level, 2\u20136, to fit your page) and nested lists that screen readers announce with their level. No custom widgets to learn.<\/li>\n<li>A table of contents jumps to each section, and a \"Back to contents\" link ends every section.<\/li>\n<li>Visible keyboard focus. Collapsible categories use native <code>&lt;details&gt;<\/code>\/<code>&lt;summary&gt;<\/code>, so they work with the keyboard and screen readers and need no JavaScript.<\/li>\n<li>The link to the page being viewed is marked with <code>aria-current<\/code>.<\/li>\n<li>Reflows to a 320px-wide screen without horizontal scrolling, and is sized in <code>rem<\/code>\/<code>em<\/code> for zoom and custom text spacing.<\/li>\n<li>Tree lines at full strength in Windows contrast themes and with \"increase contrast\"; a clean printout (no table of contents, collapsed categories printed open).<\/li>\n<li>The markup is tested with axe-core and in a real browser; the tests and a manual checklist (keyboard, NVDA, zoom) are in the GitHub repository.<\/li>\n<\/ul>\n\n<p>Colors and fonts come from your theme, so text contrast is the theme's to get right.<\/p>\n\n<h4>Thai language support<\/h4>\n\n<ul>\n<li>Thai translation of the sitemap, the settings page and the block editor, delivered as a language pack from translate.wordpress.org.<\/li>\n<li>Years in the Buddhist Era (\u0e1e.\u0e28.) on Thai sites, in any date format.<\/li>\n<li>Thai titles and names in dictionary order. Databases sort words that start with \u0e40 \u0e41 \u0e42 \u0e43 \u0e44 after all others; this plugin sorts them by their first consonant, as a Thai dictionary does (\u0e01\u0e32 \u0e40\u0e01\u0e21 \u0e44\u0e01\u0e48 \u0e02\u0e19\u0e21 \u2026).<\/li>\n<li>Line spacing that leaves room for Thai vowels and tone marks.<\/li>\n<\/ul>\n\n<h4>Fast on large sites<\/h4>\n\n<ul>\n<li>The sitemap is cached and rebuilt automatically when posts, pages, categories or authors change.<\/li>\n<li>Posts are loaded in batches without their content, so memory stays low however many posts there are.<\/li>\n<li>Optionally list only the first posts of each category, with a link to the category page for the rest.<\/li>\n<\/ul>\n\n<p>On a test site with 5,000 posts, building the sitemap took under a second and serving it from the cache a few milliseconds.<\/p>\n\n<h4>Display<\/h4>\n\n<ul>\n<li>A tree with connecting lines (default), or plain nested lists (the block's \"List\" style, or <code>style=\"list\"<\/code>).<\/li>\n<li>Collapsible categories, open or closed at first.<\/li>\n<li>Show everything, or only one kind of content: pages, posts, categories, tags, archives, authors, or any public content type or taxonomy.<\/li>\n<\/ul>\n\n<h4>Coming from WP Sitemap Page<\/h4>\n\n<p>This plugin started as a fork of <a href=\"https:\/\/wordpress.org\/plugins\/wp-sitemap-page\/\">WP Sitemap Page<\/a> 1.9.6 by Tony Archambeau (GPLv2 or later). Its settings are copied the first time this plugin runs. Replace <code>[wp_sitemap_page]<\/code> shortcodes with <code>[parich_sitemap]<\/code>; they take the same attributes.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>The complete source, including the block editor code in <code>src\/<\/code>, ships with the plugin and is on GitHub: <a href=\"https:\/\/github.com\/parich\/parich-accessible-sitemap\">github.com\/parich\/parich-accessible-sitemap<\/a>. Build it with <code>npm install<\/code> and <code>npm run build<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your dashboard go to <strong>Plugins \u2192 Add New Plugin<\/strong>, search for \"Parich Accessible Sitemap\", then install and activate it. You can also upload the ZIP file under <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Edit the page that should show the sitemap and add the <strong>Parich Accessible Sitemap<\/strong> block, or the <code>[parich_sitemap]<\/code> shortcode.<\/li>\n<li>Optional: choose what to hide and how posts are shown under <strong>Settings \u2192 Parich Accessible Sitemap<\/strong>. The <strong>How to use<\/strong> tab lists every shortcode option.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20an%20xml%20sitemap%20for%20search%20engines%3F\"><h3>Is this an XML sitemap for search engines?<\/h3><\/dt>\n<dd><p>No. WordPress already publishes one for search engines at <code>\/wp-sitemap.xml<\/code>. This plugin makes the sitemap page that visitors read.<\/p><\/dd>\n<dt id=\"which%20shortcode%20options%20are%20there%3F\"><h3>Which shortcode options are there?<\/h3><\/dt>\n<dd><ul>\n<li><code>only<\/code> \u2014 one kind of content: <code>page<\/code>, <code>post<\/code>, <code>category<\/code>, <code>tag<\/code>, <code>archive<\/code>, <code>author<\/code>, or the name of a public content type or taxonomy.<\/li>\n<li><code>sort<\/code> and <code>order<\/code> \u2014 for example <code>[parich_sitemap only=\"page\" sort=\"menu_order\"]<\/code> or <code>[parich_sitemap only=\"post\" sort=\"post_title\" order=\"ASC\"]<\/code>.<\/li>\n<li><code>heading_level<\/code> \u2014 2 to 6 (default 2).<\/li>\n<li><code>toc=\"false\"<\/code> \u2014 no table of contents; <code>display_title=\"false\"<\/code> \u2014 no section headings.<\/li>\n<li><code>display_category_title_wording=\"false\"<\/code> \u2014 no \"Category:\" before category names.<\/li>\n<li><code>style=\"list\"<\/code> \u2014 plain lists instead of the tree.<\/li>\n<li><code>collapsible=\"true\"<\/code> or <code>collapsible=\"closed\"<\/code> \u2014 collapsible categories.<\/li>\n<li><code>posts_per_category=\"20\"<\/code> \u2014 at most 20 posts per category.<\/li>\n<li><code>pages_title<\/code>, <code>posts_title<\/code>, <code>categories_title<\/code>, <code>tags_title<\/code>, <code>archives_title<\/code>, <code>authors_title<\/code> \u2014 rename a section.<\/li>\n<li><code>only_private=\"true\"<\/code> \u2014 private pages, shown only to users who can read them.<\/li>\n<\/ul>\n\n<p>The block has the same options in its settings panel.<\/p><\/dd>\n<dt id=\"my%20site%20has%20thousands%20of%20posts.%20will%20the%20sitemap%20be%20slow%3F\"><h3>My site has thousands of posts. Will the sitemap be slow?<\/h3><\/dt>\n<dd><p>Only the first visit after a change builds it; later visits are served from the cache. To make the page itself shorter, set <strong>Posts per category<\/strong> in the settings (or <code>posts_per_category<\/code> in the shortcode).<\/p><\/dd>\n<dt id=\"does%20this%20make%20my%20whole%20site%20accessible%3F\"><h3>Does this make my whole site accessible?<\/h3><\/dt>\n<dd><p>No. It makes the sitemap's markup accessible. Colors, contrast and the rest of the page come from your theme and your content.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20off%20the%20thai%20dictionary%20order%3F\"><h3>Can I turn off the Thai dictionary order?<\/h3><\/dt>\n<dd><p>Yes: <code>add_filter( 'parich_sitemap_thai_sort', '__return_false' );<\/code>. Lists without any Thai are never re-sorted. The PHP intl extension is used when the server has it; otherwise a built-in method gives the same order.<\/p><\/dd>\n<dt id=\"which%20filters%20are%20there%20for%20developers%3F\"><h3>Which filters are there for developers?<\/h3><\/dt>\n<dd><ul>\n<li><code>parich_sitemap_use_cache<\/code> \u2014 return false to build the sitemap on every view.<\/li>\n<li><code>parich_sitemap_cache_ttl<\/code> \u2014 how long a cached sitemap is kept, in seconds (default one day).<\/li>\n<li><code>parich_sitemap_thai_sort<\/code> \u2014 return false to keep the database order.<\/li>\n<li><code>parich_sitemap_collator<\/code> \u2014 a <code>Collator<\/code> to sort Thai with, or null for the built-in method.<\/li>\n<li><code>shortcode_atts_parich_sitemap<\/code> \u2014 WordPress's standard filter for the shortcode's attributes.<\/li>\n<\/ul><\/dd>\n<dt id=\"how%20can%20i%20support%20the%20plugin%3F\"><h3>How can I support the plugin?<\/h3><\/dt>\n<dd><p>The plugin is free, with every feature for everyone. If it is useful to you, you can <a href=\"https:\/\/buy.stripe.com\/3cIaEW9699pf3dyeAfaMU00\">make a donation<\/a>. Thank you!<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release, forked from WP Sitemap Page 1.9.6.<\/li>\n<li>Accessible markup (WCAG 2.1 AA): navigation landmark, table of contents, headings of your chosen level, nested lists, <code>aria-current<\/code>, \"Back to contents\" links.<\/li>\n<li>Block with a live preview in the editor, as well as the shortcode.<\/li>\n<li>Tree display and collapsible categories.<\/li>\n<li>Thai translation, Buddhist Era years and Thai dictionary order.<\/li>\n<li>Cache, lightweight loading and an optional limit of posts per category for large sites.<\/li>\n<li>Styles for Windows contrast themes, \"increase contrast\" and print.<\/li>\n<li>Settings copied from WP Sitemap Page; its shortcode attributes work unchanged in <code>[parich_sitemap]<\/code>.<\/li>\n<\/ul>","raw_excerpt":"An accessible (WCAG 2.1 AA) HTML sitemap block and shortcode: tree view, collapsible categories, Thai translation and Thai dictionary order.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377189","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=377189"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/parich"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377189"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377189"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377189"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377189"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377189"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}