Description

Creates SEO-friendly table of contents for your posts, pages or custom post types. Great customizable appearance.

Features

  • Automatical insertion a table of contents (configure post types and position).
  • SEO-friendly: table of contents code is ready to use by Google for snippets on result page.
  • Insert by shortcode, Gutenberg block or widget.
  • Button on toolbar of the classic editor.
  • Gutenberg block into “Common Blocks”.
  • Setting the minimum number of headings to display table of contents.
  • Setting the depth of headings for table of contents.
  • Skip headings by level or text.
  • Hierarchical or linear view.
  • Numeration items: decimal or roman numbers in order or nested.
  • Customizable appearance: width, float, title font size and weight, items font size, colors.
  • Color schemes (dark, light, white, transparent, inherit from theme) and the ability to override colors.
  • Toggle Show/Hide (optionally)
  • Customizable labels.
  • Smooth scroll (optionally).
  • Setting offset top for smooth scroll.
  • Wrap table of contents with <!–noindex–> tag (optionally).
  • Pretty hash in URL (like example.com/faq/#how_do_this).
  • RTL support.
  • Available override global settings for a particular post.
  • Highly compatible with WordPress themes and plugins.

Auto Insert

For automatical insertion a table of contents in a posts, select option “Auto Insert Table of Contents” in the plugin settings (tab “Auto Insert”).
Supported positions:

  • before first heading;
  • after first heading;
  • after first block (paragraph or heading);
  • top of post content;
  • bottom of post content.

You can also select post types to which the table of contents will be automatically added.

Manual Insert

For manual insertion a table of content in a posts, use one of the ways:

  • button “Table of Contents” on toolbar in classic editor;
  • gutenberg block “Table of Contents”;
  • shortcode [lwptoc].

Pretty hash in URL

By default, hash generated as heading text (for example, #How_Do_This). You can change hash format in global settings, tab “Misc.”.
For non-English websites it is recommended to enable the Intl PHP extension.

Compatibility

LuckyWP Table of Contents was successfully tested with the following plugins:

  • Elementor Page Builder
  • Beaver Builder and Beaver Builder Themer Add-On
  • WPBakery Page Builder
  • Oxygen
  • WordPress Multilingual Plugin (WPML), officially confirmed
  • Rank Math, officially confirmed
  • WP Rocket
  • Toolset Views and Toolset Access

Hooks

Filters lwptoc_before, lwptoc_after

Use for add custom HTML before/after the table of contents.
Example:

add_filter('lwptoc_before', function ($before) {
    return '<p>Example text before TOC.</p>' . $before;
});

Filter lwptoc_shortcode_tag

Use this filter for change shortcode tag name [lwptoc].
Example:

add_filter('lwptoc_shortcode_tag', function ($tag) {
    return 'toc';
});

Filter lwptoc_heading_id

Use for modify heading ID.
Example:

add_filter('lwptoc_heading_id', function ($id, $label) {
    return $id;
}, 10, 2);