Easy Table of Contents


Une extension conviviale, focalisée sur l’utilisateur qui vous permet d’insérer une table des matières dans vos articles, pages et types de contenu personnalisé.


  • Générez automatiquement une table des matières pour vos articles, pages et types de contenu personnalisé en analysant son contenu pour les en-têtes.
  • Supports the <!--nextpage--> tag.
  • Prise en charge de l’extension Rank Math.
  • Fonctionne avec l’éditeur classique, Gutenberg, Divi, Elementor, WPBakery Page Builder et les éditeurs de page de Visual Composer.
  • Activer optionnellement pour les pages et/ou articles, types de contenu personnalisé pris en charge, tant que leur contenu est extrait avec la balise de modèle the_content().
  • Optionally auto insert the table of contents into the page, selectable by enabled post type.
  • Provides many easy to understand options to configure when and where to insert the table of contents.
  • Many options are available to configure how the inserted table of contents appears which include several builtin themes. If the supplied themes do no meet you needs, you can create your own by choosing you own colors for the border, background and link color.
  • Multiple counter bullet formats to choose from; none, decimal, numeric and roman.
  • Choose to display the table of contents hierarchical or not. This means headings of lower priority will be nested under headings of higher priority.
  • User can optionally hide the table of contents. You full control of this feature. It can be disabled and you can choose to have it hidden by default.
  • Supporte le défilement doux.
  • Activer ou désactiver de manière sélective la table des matières, article par article.
  • Choisissez les titrages utilisés pour générer la table des matières. Cela peut aussi être défini article par article.
  • Easily exclude headers globally and on a post by post basis.
  • If you rather not insert the table of contents in the post content, you can use the supplied widget and place the table of contents in your theme’s sidebar.
  • The widgets supports being affixed or stuck on the page so it is always visible as you scroll down the page. NOTE: this is an advanced option since every theme is different, you might need support from your theme developer to learn what the correct item selector to use in the settings to enable this feature.
  • The widget auto highlights the sections currently visible on the page. The highlight color is configurable.
  • Developer friendly with many action hooks and filters available. More can be added by request on Github. Pull requests are welcomed.

Live Examples

Here are links to documentation pages for several of the premium templates for the Connections Business Directory plugin which utilize the widget included with this plugin:

Feuille de route

  • Fragment caching for improved performance.
  • Improve SEO by adding options to add nofollow to TOC link and wrap TOC nav in noindex tag.
  • Improve accessibility.
  • Add Bullet and Arrow options for list counter style.


Easy Table Contents is a fork of the excellent Table of Contents Plus plugin by Michael Tran.

Captures d’écran

  • The General section of the settings.
  • The Appearance section of the settings.
  • The Advanced section of the settings.


Using the WordPress Plugin Search

  1. Navigate to the Add New sub-page under the Plugins admin page.
  2. Search for easy table of contents.
  3. The plugin should be listed first in the search results.
  4. Click the Install Now link.
  5. Lastly click the Activate Plugin link to activate the plugin.

Uploading in WordPress Admin

  1. Download the plugin zip file and save it to your computer.
  2. Navigate to the Add New sub-page under the Plugins admin page.
  3. Click the Upload link.
  4. Select Easy Table of Contents zip file from where you saved the zip file on your computer.
  5. Click the Install Now button.
  6. Lastly click the Activate Plugin link to activate the plugin.

Using FTP

  1. Download the plugin zip file and save it to your computer.
  2. Extract the Easy Table of Contents zip file.
  3. Create a new directory named easy-table-of-contents directory in the ../wp-content/plugins/ directory.
  4. Upload the files from the folder extracted in Step 2.
  5. Activate the plugin on the Plugins admin page.


Ok, I’ve installed this… what do I do next?

You first stop should be the Table of Contents settings admin page. You can find this under the Settings menu item.

You first and only required decision is you need to decide which post types you want to enable Table of Contents support for. By default it is the Pages post type. If on Pages is the only place you plan on using Table of Contents, you have nothing to do on the Settings page. To keep things simple, I recommend not changing any of the other settings at this point. Many of the other settings control when and where the table of contents is inserted and changing these settings could cause it not to display making getting started a bit more difficult. After you get comfortable with how this works… then tweak away 🙂

With that out of the way make sure to read the How are the tables of contents created? FAQ so you know how the Table of Contents is automatically generated. After you have the page headers setup, or before, either way… Scroll down on the page you’ll see a metabox named « Table of Contents« , enable the Insert table of contents. option and Update and/or Publish you page. The table of contents should automatically be shown at the top of the page.

How are the tables of contents created?

La table des matière est générée par les titrages trouvés sur une page. Les titrages sont les balises HTML <h1>,<h2>,<h3>,<h4>,<h5>,<h6>. Si vous utilisez l’éditeur visuel de contenu WordPress, ces balises de titrage sont utilisées et insérées dans le contenu lorsque vous sélectionnez une des options de titrages n de la liste déroulante de mise en forme. Chaque titrage trouvé sur la page créera un élément de table des matières. Voici un exemple qui va créer une table des matières contenant les six éléments.

<h1>Item 1</h1>
<h1>Item 2</h1>
<h1>Item 3</h1>
<h1>Item 4</h1>
<h1>Item 5</h1>
<h1>Item 6</h1>

Vous pouvez également créer une table des matières « imbriquée ». C’est difficile à expliquer, donc je vais illustrer en me basant sur l’exemple précédent. Dans cet exemple, une table des matières sera créée avec les mêmes six éléments, mais maintenant les trois premiers auront chacun un élément enfant imbriqué en dessous. L’indentation n’est pas nécessaire, elle a été ajoutée uniquement à des fins d’illustration.

<h1>Item 1</h1>
    <h2>Item 1.1 -- Level 2</h2>
<h1>Item 2</h1>
    <h2>Item 2.1 -- Level 2</h2>
<h1>Item 3</h1>
    <h2>Item 3.1 -- Level 2</h2>
<h1>Item 4</h1>
<h1>Item 5</h1>
<h1>Item 6</h1>

Vous n’êtes également pas limité à un unique élément imbriqué. Vous pouvez en ajouter autant que vous le souhaitez. Vous pouvez même créer plusieurs niveaux imbriqués…

<h1>Item 1</h1>
    <h2>Item 1.1 -- Level 2</h2>
        <h3>Item 1.1.1 -- Level 3</h3>
        <h3>Item 1.1.2 -- Level 3</h3>
        <h3>Item 1.1.3 -- Level 3</h3>
    <h2>Item 1.2 -- Level 2</h2>
      <h3>Item 1.2.1 -- Level 3</h3>
      <h3>Item 1.2.2 -- Level 3</h3>
      <h3>Item 1.2.3 -- Level 3</h3>
    <h2>Item 1.3 -- Level 2</h2>
<h1>Item 2</h1>
    <h2>Item 2.1 -- Level 2</h2>
    <h2>Item 2.2 -- Level 2</h2>
<h1>Item 3</h1>
    <h2>Item 3.1 -- Level 2</h2>
    <h2>Item 3.2 -- Level 2</h2>
<h1>Item 4</h1>
<h1>Item 5</h1>
<h1>Item 6</h1>

Vous pouvez aller jusqu’à 6 niveaux en profondeur si nécessaire. J’espère que cela vous aidera à comprendre comment créer et construire votre propre table des matières auto générée sur vos sites !


22 novembre 2021
I don't usuually review plugins, but I am so happy with this one that I decided to reward the dev with a review. Sure, it "hasn't been tested with the latest version of WP" and hasn't been updated for 8 months, but it works splendidly. Not sure why the Oct 2021 reviewer could not get it to work. It has the options I need including: 1. Position on page (after title, before first heading, etc.) 2. Autonumbering on/off (I leave off because I manually number a lot of my headers with scientific numbering) 3. Thresholod setting, where if you have less than X headings, show/hide the toc 4. Minimize TOc on post/page There are so many other useful settings like custom colors and filters to not show items with certain words, it's great. Thank you.
26 octobre 2021
It used to work fine but since yesterday in a particular post gives 500 internal errors, it works on another page fine, but in all the rest posts and pages seem to ignore the styling, there is no specified border, neither the numbering nor the show/hide toggle button, the list looks as a simple ul list. I had to remove it!
15 septembre 2021
An easy to use, clean TOC plugin. Thank you! Only 1 thing missing. Please add dark mode support for future ready websites 😉
Lire les 121 avis

Contributeurs & développeurs

« Easy Table of Contents » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.


“Easy Table of Contents” a été traduit dans 14 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « Easy Table of Contents » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.


2.0.17 03/26/2021

  • TWEAK: Add additional check to prevent Uncaught Error: Call to undefined function is_woocommerce().
  • TWEAK: Ensure an instance of ezTOC_Post is returned before accessing methods/properties.

2.0.16 02/01/2021

  • TWEAK: Remove special characters such as fancy quotes, en and, em dashes when generating in-page anchor IDs.

2.0.15 01/27/2021

  • TWEAK: Remove additional reserved characters when generating in-page anchor IDs.

2.0.14 01/26/2021

  • TWEAK: Refactor debug log as a Singleton.
  • TWEAK: Add additional logging to aid in debugging.
  • BUG: Correct logic for PHP where empty string no longer evaluates as integer 0.

2.0.13 01/25/2021

  • TWEAK: Restrict debug logging to when WP_DEBUG is enabled and current user capability of manage_options.
  • TWEAK: Add logging to aid in support.
  • DEV: phpDoc update.

2.0.12 01/22/2021

  • TWEAK: Allow _ and - in anchors.
  • TWEAK: Minor CSS tweaks that prevent theme from breaking the layout.
  • TWEAK: Minor tweak to class initialization.
  • TWEAK: Do not display the view toggle if JavaScript is broken on the site.
  • TWEAK: Add the ability to enable displaying of displaying debug information on the page.
  • BUG: Check for array and keys before accessing values.
  • BUG: Check for array key be fore access.
  • BUG: Remove reserved characters when generating in-page anchor IDs.
  • DEV: Remove unnecessary vendor library files.
  • DEV: Deal with phpStorm showing a warning about path not found when including files.

2.0.11 05/01/2020

  • COMPATIBILITY: Add support for the Uncode theme.
  • COMPATIBILITY: Do not run on WooCommerce pages.
  • DEV: Correct typo in phpDoc.

2.0.10 04/20/2020

  • TWEAK: Add trailing span to heading, to prepare for # option and to fix duplicate heading title matching.
  • TWEAK: Add second heading search/replace function to search for heading in content with heading html entities decoded. May help Beaver Builder users as it seems like it does not encode HTML entities as WP core does.

2.0.9 04/08/2020

  • TWEAK: AMP/Caching plugins seems to break anchors with colons and periods even though they are valid characters for the id attribute in HTML5.
  • TWEAK: Replace multiple underscores with a single underscore.
  • DEV: Update the UWS library which fixes the deprecation notice for PHP 7.4.
  • DEV: Add phpcs.xml.dist.
  • DEV: Strict type checks.
  • DEV: Inline doc updates.

2.0.8 04/03/2020

  • TWEAK: Convert <br /> tags in headings to a space.
  • TWEAK: Add additional widget classes.
  • TWEAK: Improve the sanitization of the excluded headings field post setting.
  • TWEAK: Minor optimization of creating the matching pattern for excluding headings for improved performance.
  • COMPATIBILITY: Exclude Create by Mediavine from heading eligibility.
  • BUG: Ensure excluded headings are removed from the headings array.
  • BUG: Ensure empty headings are removed from the headings array.

2.0.7 04/02/2020

  • NEW: Exclude any HTML nodes with the class of .ez-toc-exclude-headings.
  • TWEAK: Change smooth scroll selector from 'body a' to 'a.ez-toc-link'.
  • TWEAK: Declare JS variables.
  • TWEAK: Support unicode characters for the id attribute. Permitted by HTML5.
  • TWEAK: Move the in-page anchor/span to before the heading text to account for long headings where it line wraps.
  • TWEAK: Slight rework to ezTOC widget container classes logic.
  • TWEAK: Cache bust the JS to make dev easier.
  • TWEAK: JavaScript cleanup.
  • TWEAK: URI Encode the id attribute to deal with reserved characters in JavaScript. Technically not necessary for the id attribute but needed to work with the jQuery smoothScroll library.
  • COMPATIBILITY: Reintroduce filter to exclude Ultimate Addons for VC Composer Tabs from heading eligibility.
  • BUG: Correct array iteration logic when processing headings.
  • BUG: Tighten matching for headings in excluded HTML nodes. The loose matching was excluding far too many headings.
  • BUG: Use esc_attr() instead of esc_url() for the anchor href because valid id attribute characters would cause it to return an empty href which cause a nonworking link.

2.0.6 03/30/2020

  • BUG: Ensure minified files are current.

2.0.5 03/27/2020

  • BUG: Prevent possible « strpos(): Empty needle in » warnings when excluding nodes from TOC eligibility.

2.0.4 03/16/2020

  • NEW: Introduce the ez_toc_container_class filter.
  • TWEAK: Slight rework to ezTOC container classes logic.
  • BUG: sprintf() was eating % in the TOC heading item.
  • BUG: Do not insert TOC at top of post if before first heading option is selected even if first heading can not be found. Some page builders cause the TOC to insert twice or on blog pages.

2.0.3 03/12/2020

  • TWEAK: Slightly tighten heading matching, last update made it a little too loose.
  • BUG: Correct logic required to place TOC before first heading which is required for the more lax heading matching required for page builders.

2.0.2 03/12/2020

  • COMPATIBILITY: Remove filter to exclude Ultimate Addons for VC Composer Tabs from heading eligibility.
  • COMPATIBILITY: Add additional filters to improve Elementor compatibility.
  • TWEAK: Loosen heading matching when doing find/replace to insert in page links. Excluding the opening heading tag to allow matching heading where page builders dynamically add classes and id which break heading matching during find/replace.

2.0.1 03/09/2020

  • COMPATIBILITY: Exclude the WordPress Related Posts plugin nodes.
  • COMPATIBILITY: Exclude a couple Atomic Block plugin nodes.
  • COMPATIBILITY: Exclude JetPack Related Posts from heading eligibility.
  • COMPATIBILITY: Exclude Ultimate Addons for VC Composer Tabs from heading eligibility.
  • COMPATIBILITY: Exclude WP Product Reviews from heading eligibility.
  • TWEAK: Prevent possible « strpos(): Empty needle in » warnings when excluding nodes from TOC eligibility.

2.0 02/01/2020

  • NEW: Major rewrite of all code and processing logic to make it faster and more reliable.
  • NEW: Support for the