That “Leave a Reply” heading at the bottom of your post is not a plugin, and it is not a theme bug. It is core WordPress, printed by the comment form on every post with an open comment status.
Knowing how to remove Leave a Reply in WordPress takes about two minutes once you know which lever to pull. Picking the wrong lever wastes an afternoon.
You get 6 working methods here, ranked by permanence:
- Discussion settings and per-post toggles
- Bulk edit across posts, pages, and attachments
- Theme controls, CSS, code filters, and plugins
Plus the fix for the most common complaint: the form that still shows up after you disabled everything.
What Is the Leave a Reply Section in WordPress
“Leave a Reply” is the default heading of the WordPress comment form. WordPress prints it through the comment_form() function, which loads inside comments_template() at the bottom of a post template. The string is core output, not a plugin and not a theme bug.
Most people who search for this assume a plugin added the box. Nothing added it. It ships with WordPress.
That distinction matters because 43.4% of all websites run on WordPress, according to W3Techs (April 2025), and every one of them carries the same comment template logic underneath.
| Element on the page | What produces it | Removed by |
|---|---|---|
| “Leave a Reply” heading | title_reply argument | Filter or comment status |
| Comment text field | comment_form() | Closing comments |
| Existing comment list | wp_list_comments() | Deleting comments |
| “Comments are closed” | Theme comments.php | Template edit |
Where the String Actually Lives
Core file: wp-includes/comment-template.php holds the default arguments array.
Default value: the title_reply key is set to “Leave a Reply” and gets swapped to “Leave a Reply to [name]” during threaded replies.
Classic themes call the template from comments.php. Block themes render the same thing through the Comments block, and WordPress 6.x now powers over 90% of active installs (WPZOOM), so block template behavior applies to most sites you touch.
Hiding the Heading and Closing Comments Are Not the Same
Two different outcomes hide behind one request.
- Blank the heading: the form stays live and still accepts submissions
- Close comments: the whole comment form disappears and the endpoint rejects new entries
Pick the second one if spam is the reason you are here. Akismet, built by Automattic, has filtered more than 500 billion spam comments across WordPress sites in 20 years.
Why the Leave a Reply Box Appears on Posts and Pages
The comment form appears because comment_status on that post is set to “open”. WordPress writes that value at publish time using whatever Settings > Discussion said at that moment. Changing the global setting later does not rewrite posts that already exist.
The Discussion Setting Applies to New Content Only
Settings > Discussion controls the default, and that default is forward looking.
Uncheck “Allow people to submit comments on new posts” today, and every post published yesterday keeps its open comment status.
Common trap: site owners flip the global setting, clear cache, and stay confused when 400 old URLs still show the box.
Comment Status Is Stored Per Post
Every row in the wp_posts table carries its own comment_status value.
- Value is either
openorclosed - Written once at publish, then edited only through the post editor, quick edit, bulk edit, or code
- Pages default to closed on fresh installs, which is why the box on a page usually points to a theme template or an import
Imported and Migrated Content Carries the Old Settings
Content moved through the WordPress importer, a staging clone, or a Blogger or Squarespace migration brings its old comment status along.
A site that never turned comments on can still show the form on 200 imported posts. Check the source install, not the new one.
Why the Heading Shows With Zero Comments
The reply title renders independently of the comment count.
comment_form() runs whenever comments are open, empty database or not. That is why a brand new post with no discussion still displays a full form and a submit button.
How To Remove Leave a Reply From One Post or Page
Open the post, find the Discussion panel in the sidebar, and uncheck “Allow comments”. Update the post. The heading, the comment field, and the submit button all disappear from that single URL within one page load, assuming no page cache sits in front.
Block editor path: Post tab > Discussion > Allow comments.
Classic editor path: Screen Options > check Discussion > scroll to the metabox below the content area.
Existing comments stay in the database. Re-enable comments six months later and they reappear exactly as they were, which is useful if you are testing rather than committing.
Enabling the Discussion Panel When It Is Hidden
The panel goes missing on plenty of installs. It is a preference toggle, not a bug.
Click the three dot Options icon at the top right, open Preferences > Panels, then switch on Discussion.
Reload the editor and the panel sits under the Post tab with the rest of the document settings.
Quick Edit Handles It in Two Clicks
Skip the editor entirely for a single fix.
Hover the post row under Posts > All Posts, click Quick Edit, uncheck Allow Comments, hit Update. No page reload, no editor loading screen.
How To Remove Leave a Reply From All Future Posts
Go to Settings > Discussion and uncheck “Allow people to submit comments on new posts”. Save. Every post published after that moment gets comment_status set to closed, and the comment form never renders on those URLs.
This one checkbox stops the problem from repeating. It fixes nothing that already exists.
Related Settings on the Same Screen
Auto-close on old posts: “Automatically close comments on posts older than 14 days” gives partial coverage without touching every post.
Trackbacks and pingbacks: the two boxes above the comment setting control link notifications, a separate spam channel worth turning off at the same time.
Untouched: comment moderation rules, the disallowed key list, and avatar settings all keep working regardless of what you do here.
Why the 14 Day Rule Beats Nothing
Spam bots hit older posts hardest because they sit in indexes longer and rank for stale queries.
Closing comments on aging content cuts the target surface without removing discussion from anything you published this week.
How To Remove Leave a Reply From Existing Posts in Bulk
Select all posts under Posts > All Posts, choose Edit from Bulk Actions, click Apply, set Comments to “Do not allow”, then Update. WordPress rewrites comment_status to closed for every selected row in a single query batch.
Before selecting anything, open Screen Options and set posts per page to 999. Default pagination shows 20, and nobody wants to repeat this 30 times.
Then repeat the same steps under Pages. Bulk edit does not cross post types.
| Content type | Covered by bulk edit | Where the form survives |
|---|---|---|
| Posts | Yes | Nowhere, once applied |
| Pages | Yes, separate screen | Missed if you only did Posts |
| Attachments | No | Every image URL |
| Custom post types | Only if registered with comment support | Portfolio, product, docs |
The WP-CLI Route
One line closes comments on every post on the site.
wp post list --format=ids | xargs wp post update --comment_status=closed
Worth knowing: add --post_type=attachment as a second pass to catch media, and run a database backup first because there is no undo command.
Attachment Pages and Media Comments
WordPress generates a standalone URL for every uploaded file, and those pages inherit comment support.
Bulk edit ignores them completely. That single gap explains most “I disabled everything and the form is still there” complaints.
Fix it with a redirect from attachment URLs (Yoast SEO and Rank Math both include this toggle), or with the WP-CLI pass above.
How To Remove Leave a Reply Through Theme Settings
Most commercial themes include a comment toggle in the Customizer or the Site Editor. Block themes remove the Comments block directly from the Single template. Classic themes hide the form through a theme option panel, no code and no plugin required.
With over 30,000 themes in circulation (WPZOOM), the toggle location varies. The concept does not.
| Theme | Where the toggle sits |
|---|---|
| Twenty Twenty-Four / Twenty Twenty-Five | Site Editor > Templates > Single > delete Comments block |
| Astra | Customizer > Blog > Single Post > comment settings |
| GeneratePress | Customizer > Layout > Blog > disable comments |
| Kadence / Blocksy | Post layout settings, comments section |
Removing the Comments Block in a Block Theme
Open Appearance > Editor > Templates > Single, click the Comments block, delete it, then save.
Bundled children: Comments Title, Comment Template, and Comments Pagination are child blocks, so they all go with the parent.
Repeat on the Page template if the form shows there too.
The Child Theme Rule for Classic Themes
Editing comments.php in a parent theme works right up until the next update overwrites it.
Build a child theme, copy the file across, then edit the copy. Ten minutes now versus a support ticket in three months.
How To Remove Leave a Reply With CSS
Add .comment-respond, #reply-title { display: none; } under Appearance > Customize > Additional CSS. The heading and form vanish from the rendered page instantly. The comment endpoint stays open, which makes this a visual patch and not a real fix.
I reach for this exactly twice: during a client demo, and when a theme hardcodes the form and I need the page presentable in five minutes.
Finding the Right Selector
Guessing class names wastes time. Right click the form, choose Inspect, and read the wrapper.
#commentsand.comments-areaon most classic themes.wp-block-post-comments-formon block themes#respondand#reply-titlefor the heading alone
The markup that wraps all of this is plain HTML, so whatever your browser shows in the inspector is exactly what CSS will target.
What This Method Does Not Do
Bots do not read stylesheets. They POST straight to wp-comments-post.php, and a hidden form is still a live form.
WordPress sites face an attack attempt every 32 minutes on average (WPZOOM), and automated comment submission is part of that traffic.
The comment-reply JavaScript file also keeps loading on every post, so you pay the request cost for something nobody can see.
When CSS Is the Right Call Anyway
Temporary staging sites, one-off client previews, and themes where the developer refuses to check comment status properly.
Everything else deserves the settings route or a code filter.
How To Remove Leave a Reply With Code
Add add_filter('comments_open', '__return_false', 20, 2); to a child theme functions.php file or a snippet manager. WordPress then reports comments as closed on every post type, the comment form never renders, and the reply title disappears with it.
Code is the only method that survives a theme switch, a bulk import, and a new post published by someone who ignored your instructions.
Blanking the Reply Title Only
Filter the defaults array instead of closing comments.
add_filter('comment_form_defaults', function($d){ $d['title_reply'] = ''; return $d; });
Result: the heading vanishes, the comment field and submit button stay live.
Useful on landing pages where the discussion still matters but the wording gets in the way of the layout.
Closing Comments Site-Wide
Three filters cover the full surface.
comments_openstops the form from renderingpings_openkills trackbacks and pingbackscomments_arrayreturned empty hides existing comments without deleting them
Priority 20 matters. Themes that hook the same filter at default priority 10 will otherwise overwrite your value.
Cleaning the Admin Menu
The comment form can be gone while the dashboard still shows a Comments menu and a moderation bubble.
remove_menu_page('edit-comments.php'); drops the menu item, and $wp_admin_bar->remove_node('comments'); clears the bubble in the toolbar.
Client sites: worth doing, because a menu item that leads to an empty screen generates support emails.
Blocking the Endpoints Behind the Form
A removed form does not close the doors that accept comments.
REST route: the WordPress REST API exposes /wp/v2/comments, and bots POST to it directly.
XML-RPC: the older remote publishing protocol, built on XML, carries its own comment methods through xmlrpc.php.
Filter rest_endpoints to unset the comment routes, and deny wp-comments-post.php at server level.
Where the Snippet Belongs
Never the parent theme. The next update wipes it.
Child theme: free, survives updates, dies when you switch themes.
Site-specific plugin: survives both, my default for anything I hand to a client.
WPCode: 3 million active installs (WPBeginner), with error handling that rolls back a snippet before it can white-screen the site.
How To Remove Leave a Reply With a Plugin
Install Disable Comments by WPDeveloper, choose “Everywhere”, and save. The plugin closes comments across posts, pages, attachments, and custom post types in a single click, strips the Comments menu from the dashboard, and blocks comment submissions through the REST API and XML-RPC.
The plugin route wins on sites with 500+ URLs and an owner who is never going to open a code editor.
| Plugin | What it handles | Best for |
|---|---|---|
| Disable Comments | Site-wide or per post type, deletes comment data | Non-technical owners |
| Perfmatters | Comment toggle plus script removal | Performance-focused sites |
| WPCode | Snippet storage, no theme file editing | Developers on client sites |
| Akismet | Spam filtering only, form stays live | Sites keeping comments |
What Disable Comments Actually Does
Over 1 million active installations (WordPress.org), and it earns them by covering the gaps bulk edit leaves open.
- Setup wizard configures comment behavior on activation
- Deletes specific comment types, including WooCommerce product reviews
- Persistent mode rewrites comment status in the database instead of filtering at runtime
Multisite note: network activation applies the same rules across every subsite, which saves hours on a 40 site network.
Why Akismet Is Not a Removal Tool
Akismet filters. It does not remove anything.
The form keeps rendering, submissions keep arriving, and the plugin sorts them into a spam folder you still have to empty.
Automattic has filtered more than 500 billion spam entries through the service, which tells you how much traffic a live form attracts even when nobody legitimate is commenting.
The Case Against Adding a Plugin
One checkbox in Settings plus one bulk edit does the same job with zero extra PHP on every page load.
I only reach for a plugin when the site has custom post types, attachment pages, and a client who will publish new content without me.
How To Remove Leave a Reply From WooCommerce Product Pages
Go to WooCommerce > Settings > Products and uncheck “Enable product reviews”. The review form disappears from every product page. Product reviews are stored as comments, but WooCommerce renders them through the Reviews tab, so standard comment settings miss them entirely.
WooCommerce holds roughly 31% of the ecommerce market (WPZOOM), which makes this the single most common place the comment form survives a site-wide cleanup.
Removing the Reviews Tab
Unchecking the setting hides the form. The tab label sometimes stays.
Filter woocommerce_product_tabs and unset the reviews key to drop the tab completely.
Leftovers to check: the star rating under the product title and a “Reviews (0)” label in the tab row.
What You Lose With Reviews Turned Off
Removing reviews removes review schema, which removes star rating eligibility in search results.
Around 95% of shoppers read reviews before buying (Shapo, 2026), and products with five or more reviews are 270% more likely to sell.
Turn reviews off on a store and you are trading a conversion asset for a quieter moderation queue. Fine for a wholesale catalog. Expensive for retail.
Blocking Reviews on Selected Products Only
Open the product, then Advanced tab, then uncheck Enable reviews.
Bulk edit under Products covers the same field across a full category, useful for a supplier line where reviews create warranty problems.
How To Change the Leave a Reply Text Instead of Removing It
Filter comment_form_defaults and set a new title_reply value. The heading changes site-wide without touching the form itself. Block themes handle the same edit visually through the Comments Title block inside the Site Editor.
Plenty of people searching for removal actually want better wording. “Leave a Reply” sounds like a 2004 blog because it is a 2004 default.
The Arguments Worth Editing
title\_reply: the main heading above the form
title\reply\to: the heading during a threaded reply, which accepts the parent author name
label\_submit: the button text, currently “Post Comment”
comment\notes\before: the small print about required fields that most themes never style
Writing a Heading That Earns Comments
A comment prompt is a call-to-action, and generic wording performs like generic wording always does.
Tie it to the post topic. A recipe site asking “Made this? Tell us how it went” pulls better than a default heading nobody reads.
Translating Instead of Hardcoding
Loco Translate edits the string in the language files without any PHP.
Why it matters: a hardcoded filter breaks multilingual sites, because every locale gets the English string you typed.
Why Leave a Reply Still Shows After Being Disabled
Cached HTML is the cause in most cases. A page cache stores the version of the post that still contained the comment form, and visitors keep receiving that copy until the cache clears. Theme hardcoding and missed post types account for the rest.
| Symptom | Cause | Fix |
|---|---|---|
| Form gone in admin, visible live | Page or CDN cache | Purge cache and CDN |
| Only on images | Attachment pages | WP-CLI pass or redirect |
| “Comments are closed” text | Theme template | Edit comments.php |
| Only on products or portfolio | Custom post type support | Remove from supports array |
Clearing Every Cache Layer
The frontend copy visitors receive can come from three places at once.
Purge in this order: plugin cache, then CDN, then browser. LiteSpeed Cache alone runs on over 7 million sites, and WP Rocket and Cloudflare each hold their own copy independently.
Hard refresh with an incognito window before you conclude anything is broken.
Themes That Ignore Comment Status
A properly built theme wraps comments_template() in a status check. Plenty do not.
Those themes print the form or the “Comments are closed” line regardless of what the database says, and no setting fixes that.
Test in 30 seconds: switch to Twenty Twenty-Five. Form gone means the theme is the problem, not your settings.
Custom Post Types Registering Comment Support
Any post type registered with 'supports' => array('title','editor','comments') gets the form by default.
Drop comments from that array, or call remove_post_type_support('product','comments') from a snippet.
Checking the Database Directly
When nothing else explains it, read the actual value.
SELECT ID, post_title, comment_status FROM wp_posts WHERE comment_status = 'open'; in phpMyAdmin returns every row still open.
Empty result plus visible form means the theme, not the data.
Which Leave a Reply Removal Method Fits Your Site
Bulk edit plus the Discussion setting fixes most sites in under five minutes. Sites with 500+ URLs and a non-technical owner benefit from Disable Comments. Developers use a filter in a site-specific plugin. CSS ranks last, because a hidden form is still an open endpoint.
| Method | Permanence | Stops spam | Skill needed |
|---|---|---|---|
| Discussion settings + bulk edit | High | Yes | None |
| Plugin | High, tied to activation | Yes | None |
| PHP filter | Highest | Yes | Developer |
| Theme toggle | Lost on theme switch | Usually | Low |
| CSS | Visual only | No | Low |
Update Safety Ranked
Code in a parent theme dies at the next update. Code in a child theme survives updates but not a redesign.
Code in a site-specific plugin or WPCode survives both, which is why the snippet manager category now sits above 4 million combined installs across WPCode and Code Snippets.
The Combination Most Sites Actually Need
Step one: uncheck the Discussion default so new posts publish closed.
Step two: bulk edit posts, then pages.
Step three: one WP-CLI pass or one plugin for attachments and custom post types.
Three moves. No CSS, no theme file editing, nothing that breaks on the next update.
Before You Touch Anything
Back up the database. Closing comments is reversible, deleting comment data is not.
FAQ on How To Remove Leave A Reply In WordPress
Does removing the comment form delete existing comments?
No. Closing comments hides the form and the comment list, but every row stays in the database. Re-enable comments later and they reappear untouched. Deleting comment data requires a bulk trash action or the Disable Comments plugin.
Why does Leave a Reply still show after I disabled comments?
Page cache serves the old HTML. Purge WP Rocket, LiteSpeed Cache, or Cloudflare first.
If it persists, the theme hardcodes comments_template() without checking comment status.
Do I need a plugin to remove Leave a Reply?
No. Settings > Discussion plus a bulk edit covers most sites without extra PHP running on every request. A plugin only earns its place on sites with attachment pages, custom post types, or a non-technical owner.
Why does the form appear on pages when comments are off?
Pages inherit their comment_status from whatever the Discussion settings said at publish time. Imported content carries the old site’s value. Bulk edit under Pages fixes it separately from Posts.
Can I remove the heading but keep the comment form?
Yes. Filter comment_form_defaults and set title_reply to an empty string.
The comment field, submit button, and existing discussion all keep working normally.
Does hiding the form with CSS stop spam?
No. Bots POST directly to wp-comments-post.php and never load your stylesheet. CSS is a visual patch for staging sites and client demos. Use the comment status route for anything permanent.
Where is the Discussion panel in the block editor?
Click the three-dot Options icon, open Preferences, then Panels, and switch on Discussion. Reload the editor.
Classic editor users find the same box under Screen Options instead.
How do I remove Leave a Reply from WooCommerce products?
WooCommerce > Settings > Products > uncheck “Enable product reviews”. Product reviews live as comments but render through the Reviews tab, so regular comment settings ignore them completely.
Will a theme update bring the comment form back?
Only if your fix lived in the parent theme. Settings, bulk edits, and plugins survive updates. Code in a child theme or a site-specific plugin survives too.
How do I remove the Comments menu from the dashboard?
Add remove_menu_page('edit-comments.php'); to a snippet, or activate Disable Comments in “Everywhere” mode.
Both clear the admin menu item and the moderation bubble in the toolbar.
Conclusion
Every route to removing Leave a Reply in WordPress comes down to one database field: comment_status. Change it, and the reply title, the comment field, and the submit button all stop rendering.
Skip the stylesheet trick unless you need something presentable in five minutes. A hidden form still accepts POST requests from bots.
Start with Settings > Discussion, run bulk edit across posts and pages, then close the gap on attachment pages and any custom post type registered with comment support.
Still seeing the box? Purge the cache before you touch anything else. Stale HTML explains more of these cases than broken settings do.
Back up the database first. Closing comments reverses cleanly, deleting them does not.


