AIFORYA Table of Contents

Description

AIFORYA Table of Contents builds a clickable table of contents from the headings in your content — and then keeps the resulting anchor links working.

The problem this plugin exists for

In most tables of contents an anchor is derived from the heading text. Rename “Introduction” to “Foreword” and #introduction stops existing. Every link that pointed at it is now broken: your own internal links, links from other sites, links in newsletters you sent two years ago.

Nothing warns you. The page still returns 200, and the browser simply does not scroll.

What this plugin does instead

A section is given its address when it is first published, and keeps it. The heading text can change, the section can be moved, the post can be split into pages — the address follows the content, never the wording or the position. Every heading text a section has ever had is kept as an alias, so older links keep resolving too.

Try it in thirty seconds: publish a post with two sections, copy a link to the second one, then swap the two sections around and rename one of them. Your link still lands on the right section.

Features

  • Permanent section addresses — an anchor assigned once is kept, through renames, reordering and repagination.
  • Alias registry — previous addresses of a section stay reachable, so old links keep working. Addresses are kept by default: an address you stop honouring is a promise you break without knowing it.
  • Multipage posts covered end to end — when a post is split with the <!--nextpage--> tag, the table lists the headings of every page and links to the right page and heading. This is the same promise applied across pages.
  • Automatic table of contents — reads the headings (h2, h3, and so on) in your content and builds a hierarchical list of links.
  • Clickable anchors — a unique anchor link is added to each heading so readers can jump directly.
  • Automatic or manual placement — insert the table automatically before the first heading, or choose where it goes with the [aiforya_toc] shortcode.
  • Post types of your choice — enable the table on the post types you want (posts, pages, and more).
  • Adjustable threshold and levels — set the minimum number of headings required, and the deepest heading level to include.
  • Neutral, unobtrusive styling — the table fits into any public theme without imposing its own colours.

Privacy

The plugin runs entirely on your own server. Nothing is sent to any third party.

Advanced version

An advanced version (see aiforya.fr) adds a floating table of contents, numbering, word counts and smooth scrolling. This free version is fully functional on its own, with no time limit.

Screenshots

Installation

  1. Install and activate the plugin.
  2. Open the AIFORYA Table of Contents menu.
  3. In the Settings tab, choose the post types, the minimum number of headings and the levels to include.
  4. Publish or edit a long piece of content: the table appears automatically. To place it yourself, insert [aiforya_toc].

FAQ

How is the table built?

The plugin reads the headings in your content (h2, h3, and so on, down to the level you choose) and turns them into a hierarchical list. An anchor link is added to each heading so readers can jump directly.

What happens to my links when I rename a heading?

They keep working. The section keeps the address it was given when it was first published, and the heading text you just replaced is kept as an alias, so links built on it still resolve. Both the old and the new wording lead to the same section.

And if I move a section somewhere else in the post?

Its address moves with it. Sections are matched by their content, not by their position, so swapping two sections does not swap their addresses — which is exactly what would happen if positions were used.

Where is this registry stored, and what happens if I remove the plugin?

In your own database, as post metadata, on your own server. Nothing leaves your site. If you deactivate the plugin the registry is left untouched, so reactivating it restores every address; uninstalling removes the plugin’s settings.

Are there sections the plugin will not track?

Yes, and deliberately: two headings with the exact same wording in the same post. They cannot be told apart without guessing, and a “permanent” address that guesses wrong is worse than none. Those headings keep the ordinary behaviour, with an anchor derived from their text.

What happens on a post split into several pages?

The table covers the whole post. On any page, it lists the headings of every page, and each link takes the reader to the correct page and scrolls to the correct heading. A page that contains no heading of its own still shows the table, so the reader is never left without the outline.

Which content shows a table of contents?

The post types you select in the Settings tab, and only when they reach the minimum number of headings you defined.

Can I place the table at a specific spot?

Yes. Insert the [aiforya_toc] shortcode where you want it. When that shortcode is present, automatic insertion is disabled for that content to avoid duplicates.

Is it compatible with my theme?

Yes. It uses neutral, unobtrusive styling designed to fit into any public theme.

Do I need an API key?

No. The plugin is entirely self-contained and runs locally, with no external service.

Where do I get support?

Through the support forum of this plugin on WordPress.org.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“AIFORYA Table of Contents” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release: permanent section addresses kept through renames and reordering, alias registry so older anchor links keep resolving, full coverage of multipage posts split with <!--nextpage-->, automatic table of contents from headings, automatic insertion or [aiforya_toc] shortcode, post types, adjustable threshold and levels.