How to create a table of contents

Posts sometimes have a tendency to get a bit long. Then it is useful to have a table of contents at the top of the post, which readers can use to jump to different parts of the post.

Create a table of contents

It is possible to manually create a table of contents. This is done with internal links and CSS. For this, various manuals are written. I have made the tables of contents on this website with a plugin. This plugin is called Easy Table of Contents and does all the work for me! What this plugin does, is make a link to each title tag (heading) in the post. These are neatly displayed in a frame next to the first heading that appears in the article. You can also put the table of contents into your sidebar.


The figure below shows the general options of Easy Table of Contents

contents general

These are the settings being used on Web-ID. You can configure them as you please!


This is where you decide how and where the table of contents is being displayed in the post. You can use the default themes, or create a custom theme.

contents appearance

Advanced settings

Finally the advanced settings. You can configure them as you please. I chose to use all headings for the table of contents.

A very nice feature is the possibility to exclude headings. Say you have “Related posts” at the bottom of your posts. You do not want to appear that heading into the table of contents of every post. At least, I don’t, because it is no part of the post itself. You can exclude that specific heading under the option “Exclude headings”. Just copy and paste the heading you want to exclude.

contents advanced


With this plugin you can very easily add a table of contents to your posts! Do you have tables of contents on your posts? How did you create them?

Ronald Heijnes
Ronald Heijnes

Since 2008 I keep myself busy with the functionality, management, maintenance and performance of self hosted WordPress. I like to share this knowledge. All in my spare time!

Articles: 44

Leave a Reply

Your email address will not be published. Required fields are marked *