How to show comments on a separate page in WordPress

Thoughts from the team
By    | January 2, 2013 | Development, Tools & Plugins,

Struggling to give WordPress comments their own page without messing up your URL structure? I know the feeling.

Displaying a post’s comments separately from the main content can be useful in many circumstances. Although less common nowadays, traditionally many blogs chose to feature comments in a pop-up window or lightbox. It can also be desirable for editorial or legal reasons, for caching purposes, or perhaps if you are publishing individually art-directed posts. It can also be handy when using WordPress for a non-blog website.

WordPress has some legacy support for pop-up comments, but the feature is largely abandoned and poorly supported. Also, it generates the comments pages at yoursite.com/?comments_popup=XXXX, which is both bad for SEO and will often appear in analytics as one page.

To solve this conundrum, I’ve created a basic plugin for developers to implement separate comments pages for their WordPress site. The plugin generates a comments page for each post at /comments/, using the WordPress rewrite endpoints API. It’s not quite install-and-go, so check out the notes below.

Download the Storm Comments Page plugin on GitHub

Notes:

  • You will need to customise the generated page by copying the included comments-single.php template into your theme; if you’re using this as a pop-up you will want to remove the get_header() and get_footer() calls.
  • WordPress doesn’t provide a filter hook for comments_link(), so you’ll need to manually replace links to your comments to point to the new page at /comments/
  • A current limitation is that it doesn’t play well with comment pagination.

More like this