{"id":364896,"date":"2026-09-09T09:55:18","date_gmt":"2026-09-09T09:55:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/heading-progress-navigation\/"},"modified":"2026-09-09T09:55:06","modified_gmt":"2026-09-09T09:55:06","slug":"seolymp-heading-progress-navigation","status":"publish","type":"plugin","link":"https:\/\/bre.wordpress.org\/plugins\/seolymp-heading-progress-navigation\/","author":23561116,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SEOLYMP Heading Progress Navigation","header_author":"SEOLYMP","header_description":"Customizable progress navigation based on visible H1 and H2 headings for desktop and mobile.","assets_banners_color":"272d61","last_updated":"2026-09-09 09:55:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"seolymp","date":"2026-09-09 09:55:06","revision":3688055}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688059,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688059,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688059,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688059,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"General settings with activation controls, content scope, URL exclusions, and design presets.","2":"Desktop design settings for positioning, navigation points, progress line, indicator, and background.","3":"Mobile design settings for the navigation area, progress indicator, and navigation controls.","4":"Desktop progress navigation displayed alongside page content.","5":"Mobile progress navigation with section controls."}},"plugin_section":[],"plugin_tags":[19897,1753,9351,848],"plugin_category":[43],"plugin_contributors":[279904],"plugin_business_model":[],"class_list":["post-364896","plugin","type-plugin","status-publish","hentry","plugin_tags-headings","plugin_tags-navigation","plugin_tags-progress-bar","plugin_tags-scrollbar","plugin_category-customization","plugin_contributors-seolymp","plugin_committers-seolymp"],"banners":{"banner":"https:\/\/ps.w.org\/seolymp-heading-progress-navigation\/assets\/banner-772x250.png?rev=3688059","banner_2x":"https:\/\/ps.w.org\/seolymp-heading-progress-navigation\/assets\/banner-1544x500.png?rev=3688059","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/seolymp-heading-progress-navigation\/assets\/icon-128x128.png?rev=3688059","icon_2x":"https:\/\/ps.w.org\/seolymp-heading-progress-navigation\/assets\/icon-256x256.png?rev=3688059","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SEOLYMP Heading Progress Navigation creates a visual page navigation from the headings in the main content. It provides separate layouts for desktop and mobile and can serve as an alternative to the browser's default scrollbar.<\/p>\n\n<p>The plugin follows the semantic structure of the active WordPress theme. It automatically detects visible H1 and H2 headings inside a <code>&lt;main&gt;<\/code> element or an element with <code>role=\"main\"<\/code>. Headings outside the main content are ignored by default.<\/p>\n\n<h4>Heading detection<\/h4>\n\n<ul>\n<li>Detects visible H1 and H2 headings in the main content.<\/li>\n<li>Supports <code>&lt;main&gt;<\/code> and <code>[role=\"main\"]<\/code> content containers.<\/li>\n<li>Allows manual navigation points with the <code>hpn-headline<\/code> CSS class.<\/li>\n<li>Allows mobile-only navigation points with the <code>hpn-headline-mobile<\/code> CSS class.<\/li>\n<li>Supports custom marker labels with the <code>data-hpn-label<\/code> attribute.<\/li>\n<li>Avoids duplicate markers when a regular heading is placed inside a manual marker.<\/li>\n<\/ul>\n\n<h4>Flexible display rules<\/h4>\n\n<ul>\n<li>Separate activation controls for desktop and mobile.<\/li>\n<li>Configurable desktop breakpoint.<\/li>\n<li>Scope controls for the front page, single post types, archives, and taxonomy archives.<\/li>\n<li>Line-by-line URL exclusions with optional subordinate-path matching.<\/li>\n<li>Responsive switching between desktop and mobile navigation when the viewport crosses the breakpoint.<\/li>\n<\/ul>\n\n<h4>Custom design<\/h4>\n\n<ul>\n<li>Configurable positioning, sizing, colors, opacity, borders, backgrounds, and indicators.<\/li>\n<li>Separate design settings for desktop and mobile.<\/li>\n<li>Multiple mobile indicator shapes and color modes.<\/li>\n<li>Configurable mobile navigation controls.<\/li>\n<li>Built-in design presets that remain fully editable after they are applied.<\/li>\n<\/ul>\n\n<h4>Helpful diagnostics<\/h4>\n\n<p>Logged-in administrators receive front-end notices when the navigation cannot be displayed because the main content area is missing, fewer than two eligible headings were found, or the scroll distance is too short. Visitors do not see these notices.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to WordPress or install the plugin ZIP through the Plugins screen.<\/li>\n<li>Activate SEOLYMP Heading Progress Navigation.<\/li>\n<li>Open Settings &gt; SEOLYMP Heading Progress Navigation.<\/li>\n<li>Enable the desktop and\/or mobile navigation under General.<\/li>\n<li>Select the required content areas and configure the breakpoint.<\/li>\n<li>Customize the desktop and mobile designs or apply a design preset.<\/li>\n<\/ol>\n\n<p>The navigation requires at least two eligible headings and sufficient vertical distance between the first and last heading.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20headings%20are%20detected%20automatically%3F\"><h3>Which headings are detected automatically?<\/h3><\/dt>\n<dd><p>Visible H1 and H2 headings inside the first <code>&lt;main&gt;<\/code> element or the first element with <code>role=\"main\"<\/code> are detected automatically. Headings in global headers, footers, sidebars outside the main content, and other page areas are ignored.<\/p><\/dd>\n<dt id=\"what%20should%20i%20do%20if%20my%20theme%20does%20not%20provide%20a%20main%20element%3F\"><h3>What should I do if my theme does not provide a main element?<\/h3><\/dt>\n<dd><p>Add <code>role=\"main\"<\/code> to the parent container of the page content in the active template. Many page builders allow custom HTML attributes to be added without code. In Elementor, the attribute can be entered as <code>role|main<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20include%20headings%20or%20other%20elements%20manually%3F\"><h3>Can I include headings or other elements manually?<\/h3><\/dt>\n<dd><p>Yes. Add the <code>hpn-headline<\/code> CSS class to any visible element to include it on desktop and mobile. Use <code>hpn-headline-mobile<\/code> to include it only in the mobile navigation.<\/p><\/dd>\n<dt id=\"how%20are%20labels%20for%20manual%20navigation%20points%20generated%3F\"><h3>How are labels for manual navigation points generated?<\/h3><\/dt>\n<dd><p>The plugin extracts the element text and shortens it to a maximum of three words. Add a <code>data-hpn-label=\"Custom label\"<\/code> attribute to define a specific label.<\/p><\/dd>\n<dt id=\"why%20is%20the%20progress%20navigation%20not%20displayed%3F\"><h3>Why is the progress navigation not displayed?<\/h3><\/dt>\n<dd><p>Check that the relevant desktop or mobile switch and the current content scope are enabled. The page also needs a main content container, at least two eligible headings, and sufficient scroll distance. Logged-in administrators receive a notice for these structural conditions.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20custom%20post%20types%20and%20taxonomies%3F\"><h3>Does the plugin support custom post types and taxonomies?<\/h3><\/dt>\n<dd><p>Yes. Public post types, post type archives, and public taxonomy archives registered in WordPress can be selected in the scope settings when the corresponding views are available.<\/p><\/dd>\n<dt id=\"can%20individual%20urls%20be%20excluded%3F\"><h3>Can individual URLs be excluded?<\/h3><\/dt>\n<dd><p>Yes. Enter one URL path per line under General &gt; URL exclusions. Add <code>\/*<\/code> to exclude all subordinate paths as well.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Initial public release of the fully configurable plugin.<\/li>\n<\/ul>","raw_excerpt":"A configurable heading-based progress navigation for desktop and mobile with presets, scope controls, and manual markers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=364896"}],"author":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/seolymp"}],"wp:attachment":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364896"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364896"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364896"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364896"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364896"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}