Comments Are Enabled but Not Appearing
Comment settings exist in more places than people expect, and a setting at any one of them can suppress the whole section. Check them in this order.
The short version
- The per-post setting overrides the global one.
- Changing the global setting does not affect existing posts.
- Check the moderation queue before assuming nothing was submitted.
- A theme that omits comments_template() shows nothing regardless.
1. The global setting
Settings → Discussion. “Allow people to submit comments on new posts” must be ticked.
Watch out
Note the words “on new posts”. This setting applies only to posts created after you change it. Existing posts keep whatever setting they had when they were published — which is the single most common cause of this problem.
2. The per-post setting
Open a post, check the Discussion panel in the sidebar, and confirm “Allow comments” is ticked. If the panel is missing, enable it in the editor’s preferences.
To change existing posts in bulk:
# every post
wp post list --post_type=post --format=ids | \
xargs -d ' ' -I % wp post update % --comment_status=open
# or directly
wp db query "UPDATE wp_posts SET comment_status='open'
WHERE post_type='post' AND post_status='publish';"
Back up first. There is no undo on a bulk update.
3. Moderation
Check Comments in the admin for a pending queue. Settings that hold comments:
- “Comment must be manually approved” — holds everything.
- “Author must have a previously approved comment” — holds all first-timers.
- Comment moderation keywords — holds anything matching.
- Link count threshold — holds comments with more than N links.
- An anti-spam plugin that marked them as spam.
Check the Spam folder specifically. Aggressive spam filtering catching legitimate comments is common.
4. Automatic closing
Settings → Discussion has an option to close comments on posts older than a set number of days. If it is enabled, older posts stop accepting comments silently.
5. The theme template
If comments are enabled, approved comments exist, and nothing renders, the theme is not calling the template:
// in single.php, inside the loop
if ( comments_open() || get_comments_number() ) {
comments_template();
}
Some minimal and magazine themes deliberately omit comments. A child theme can add the call back.
6. A plugin disabling them
“Disable comments” plugins are installed and forgotten. Check the plugin list for anything managing comments, and check whether a caching plugin is serving a cached version of the page from before comments were enabled.
Diagnosis
| Symptom | Cause |
|---|---|
| No comment form on any post | Global setting, or the theme |
| Form on new posts only | Existing posts have comment_status closed |
| Form appears, comments do not | Moderation queue or spam |
| Worked until recently | Auto-close after N days, or a plugin |
| Visible logged in, not logged out | Page cache serving a stale copy |
Common questions
Should I enable comments?
On a new site, no — you get spam and no discussion. Turn them on when you have readers who want to talk back.
Why did my comment count not change?
The count is cached in the post meta. Clear the cache, or run wp comment recount.
Comments appear for me but not visitors
You are logged in and bypassing the page cache. Purge it.
Sumit
Writes everything on TechMozz.