Build your WordPress website with Elementor.Discover Elementor Affiliate link
Français

Site appearance

Comments · Beginner to intermediate

Missing WordPress comment form: find the right setting

Restore the WordPress comment form: compare two posts and check Discussion, automatic closure, login requirements, and the template without adding a plugin.

Source published: · Source updated: · Editorial policy

Read the French edition

Recognise a genuinely missing form

Below some posts, readers can no longer find somewhere to write a comment. Elsewhere, the form appears normally. You want to restore this area on the affected content while keeping existing comments and the site’s chosen moderation rules.

Open a post’s full address using its title or permalink. A homepage, category page, or list of excerpts does not necessarily display each post’s form. Scroll past the content and any comments already present.

Note what you see: no section, old comments without an input field, a closure message, or an invitation to log in. These situations call for different checks. The comment count displayed beside the title does not prove that a form exists farther down.

If you were able to submit a comment but it remains invisible to other readers, check its moderation status instead. In Comments, an entry marked pending or spam concerns the handling of a message already received. Allowing comments on the post does not automatically approve it. There is no need to remove anti-spam rules to look for a missing form.

Compare an affected post with one that works

Choose two posts on the same site: the affected one and another whose form works. Examine them in the same browser, with the same login status and screen width. Keep their addresses and a screenshot of their comment areas.

In the administration area, record each post’s publication date, Discussion status, visibility, and template where indicated. A template determines the display structure around the content. Two posts written with the same blocks can use different templates.

If the post is password-protected, first access its content using the authorised password: comments may remain hidden until this protection is unlocked. Do not make the post public for this test. A private post requires an account with the intended access; that is a different mechanism.

A difference in age is a clue to automatic closure. A difference in templates points towards presentation. A difference between logged-in and logged-out visitors suggests checking login requirements and cached copies. None of these clues alone establishes the cause.

If every post seems affected, use a post on which you know comments are allowed as a reference. Do not publish new text solely for this diagnosis. Also record the last known change: an update, template edit, new commenting tool, or Discussion setting. You can then change one variable at a time.

Prepare access and rollback

For an individual setting, you must be able to edit the affected post. General Discussion and appearance settings require other permissions, usually held by the administrator. In multisite, a network-mandated component may require the network manager. A missing menu does not justify granting all permissions to an editorial account.

Record the WordPress version, theme and any child theme, and tools that replace comments. Distinguish self-hosted WordPress from WordPress.com: on the platform, some controls depend on account features. Your screen labels may also vary with the version.

Before changing any setting, photograph or record its initial value. Before changing a template or isolating a plugin, arrange a recoverable backup of the database and relevant files. A template screenshot helps compare the layout but does not replace this backup.

For tests affecting appearance or components, use staging: a separate copy of the site. Have its separate database confirmed and external notifications disabled. Test comments must not send messages to real subscribers. Keep the ability to restore each setting separately.

Choose between the three approaches

Start with commenting permissions: they explain a closed post, a login restriction, or a disappearance linked to age. This approach uses existing settings and requires no additional plugin.

Move to the template if comments really are allowed but their area is missing from posts using a particular presentation. A content block in the post editor and a block in its template are not corrected in the same place.

Finally, examine the cache and components when the first two checks are satisfactory, when the result differs by visitor, or when the failure follows a specific change. Do not combine a template edit, a theme change, and several deactivations: you would no longer know which action produced the result.

Approach 1: check Discussion on the affected post

Prerequisites: identify the affected post and the comparison post, then record their initial settings. Your account must be able to edit the document. This first test concerns only one post; general rules are examined afterwards.

  1. Open Posts, then the correct document. Display the block editor’s sidebar settings and the Post tab. Find Discussion and record its status before choosing Open or Allow comments, depending on the interface. The neighbouring link-notification setting does not replace the reader-comment setting.
  2. If Discussion is missing, check the editor preferences and available panels. In the older classic editor, use Screen Options to display Discussion. Do not expect to find that classic menu in the block editor, and do not switch editors solely for this check.
  3. If the classic list offers Quick Edit, you can use this alternative beneath the exact title in Posts, All Posts. Check Allow comments and click Update. Choose one editing route and avoid bulk selection during diagnosis.
  4. Save only the intended setting, then reopen the document to confirm its value. Visit its full address as a visitor and compare it with the reference post. The expected result is the return of the form, or the intended login invitation, without existing comments disappearing.
  5. To undo the test, restore the recorded individual status and check the address again. If Discussion was already open or the form remains missing, continue to age-based closure and login: the individual status does not necessarily override these rules. Do not repeat the same change without a result.

Understand the global setting for new posts

Using the authorised account, open Settings, then Discussion. Find the option that allows comments on new posts. It defines a default behaviour; it does not retroactively reopen every older post created with comments disabled.

If the editorial policy calls for comments on future posts, enable this option and save changes at the bottom of the screen. For the already affected post, always check Discussion individually. On WordPress.com, the same principle distinguishes new posts from content already published.

Do not tick every neighbouring box. Notifications between sites, required fields, and comment approval serve other purposes. A form can work while manual moderation remains in place.

The expected result is a consistent default for future posts, not a general change to the archive. If you enabled the option only to understand its effect, return it to its initial value after the test. Posts already changed individually must be checked separately: restoring the global default does not automatically restore their previous settings.

Check automatic closure of older posts

Still in Settings, Discussion, look for automatic comment closure on posts older than a specified number of days. Record whether it is enabled and the displayed interval. Compare that interval with the age of the two posts chosen at the start.

In WordPress core, this age-based closure targets posts by default; a plugin can extend it to other content types. If your document is a page or custom content, have the actual rule checked rather than generalising the interval.

This rule can prevent new comments while keeping older approved messages visible. The document may therefore still appear open in its individual setting even though its date causes an effective closure. Ticking Allow comments again does not create an exception to this rule.

If this closure is no longer wanted across the site, the administrator can disable the option, save, then check an old post and a recent post. This change has a global scope: it may reopen other older posts whose individual permission remained open. Verify that this scope matches the intended policy; if someone else is responsible for it, coordinate the change with them.

If the rule must stay active and only one old post needs an exception, ask the site manager for a targeted, documented solution. Do not change the publication date to bypass the interval or add an improvised code snippet.

To roll back, restore the recorded checkbox state and interval. This does not delete comments received while commenting was open; their moderation remains separate. If age does not explain the problem, continue to login status and the template.

Compare the logged-in view with a visitor’s view

Open both addresses in your usual session, then in another browser profile that is not logged in to the site. You can also use a private window, bearing in mind that it may apply different restrictions to embedded services. Preserve unsaved work before ending a session.

If visitors see an invitation to log in, examine Settings, Discussion, then the requirement to be registered and logged in to comment. With the native form on self-hosted WordPress, the required account is an account on that site. WordPress.com states that this option requires a WordPress.com account login. If a plugin replaces the form, check the flow it provides instead of assuming every account is interchangeable.

When this restriction is intentional, the correct result is a clear invitation with a working login flow. You do not need to open comments to everyone. Do not confuse permission to comment with allowing registrations: these are two different decisions.

If the restriction is accidental, have the responsible person correct only this option while keeping moderation rules. Record the old value so it can be restored. If no field or message appears despite a valid login, or if only one browser fails, retain that observation for the next checks.

Approach 2: examine a block theme’s template

Prerequisites: comments are allowed, and you have appearance permissions, a test copy, and a restorable template state. A post can use blocks for its text without its theme having block templates.

  1. In the post settings, record the template used and compare it with the working post’s template. Do not choose another template because its name looks similar: it may have a different layout and scope.
  2. With a compatible theme, open Appearance, Editor, then Templates. Select the template actually used for the individual post, often Single Posts. Do not edit the template for the page that lists posts.
  3. Open List View from the document overview at the top left. Expand the structure and locate Comments, then the Post Comments Form. A heading displaying the message count does not provide an input field on its own; record exactly what is missing.
  4. Identify the other posts using this template before preparing a correction. This inspection should identify an absent area or missing inner block, to be corrected on the copy as described next. This examination requires no save and can be exited without changing the template.
  5. If Appearance, Editor is missing, check permissions and the theme type. If the structure is locked or you do not know which template applies, stop and send the two addresses to the person responsible. Do not improvise a shared-template change to make the form appear.

Restore only the missing component

Prerequisites: work on the prepared copy’s template, keeping its previous state. The expected result is one form in the right place, including on a post with no older comments.

  1. If the entire area is missing, place the insertion point after the post content. Use the plus button, find the native Comments block, and add it. Inspect its inner blocks before checking the preview of a post whose comments are open.
  2. If Comments already exists, check in List View whether only the form was removed. Where the interface allows it, add only Post Comments Form in the appropriate location, outside the part that repeats each existing comment. Do not duplicate the whole group.
  3. Save only the intended elements in the save summary. Open several posts using the template, including one with no existing message. Check the form and older comments, keeping notifications disabled for any submission test.
  4. If the addition harms the page, remove that specific addition or restore the saved template copy. Do not use Reset as an Undo button: that command can erase all its customisations. If the structure is locked or unfamiliar, pause the correction and ask for help.
  5. After validation, have the authorised person transfer only the template correction to the live environment, then check the same public addresses. Do not replace the entire production database with the staging database: newer posts, comments, and orders could disappear.

Examine a classic theme or builder

With a classic theme, first look in its documentation and existing options for a comment setting specific to posts, pages, or particular templates. There is no universal path: Appearance, Customise or a theme panel may offer different controls.

If a builder manages the post template, open that template and its display conditions on the test copy. Compare the comment component with the working post. A contact form added within the body text does not replace the form linked to that post’s comments.

In a classic theme, the comments file and its call from the template contribute to the display. Examining them is the technical manager’s responsibility. Send them the active theme, any child theme, and the two comparison addresses; do not paste a replacement file found in a tutorial.

If a test with another theme becomes necessary, perform it on staging after a backup. Record the original theme and its settings, then restore them after comparison. The form returning with another theme helps narrow the diagnosis; it does not demonstrate which exact setting or line needs correcting in the original theme.

Approach 3: isolate a cache or component problem

Prerequisites: permissions and the template have been checked. Record the tools already in use and their configuration, then prepare a separate copy before trying a deactivation. Caching keeps versions of pages; purging does not fix a rule that closes comments.

  1. After confirming a correction in the administration area, use the purge tool already supplied by the host or installed component. Target the affected address if that option exists. Do not install a second cache to address this discrepancy, and record the purge time.
  2. On a plugin-enabled WordPress.com site, go to the hosting dashboard, the site, then Settings and Server Cache. The documentation distinguishes page delivery caching from database object caching. Without plugins, this cache is managed automatically: ask support if the discrepancy persists, without installing a tool to make the control appear.
  3. Reload both posts as a visitor and then while logged in, under the same conditions as at the start. Note whether the form returns. The cache may rebuild with a temporary slowdown; repeated purges provide no new information. There is no old cache copy to restore to undo this check.
  4. If the problem persists, identify components that disable comments, replace the form, or change its display. If a Jetpack form is already in use, check its configuration and the advertised theme compatibility. Do not disable every browser protection to make an embedded service work.
  5. On the separate copy, test only the suspected component without deleting it, then compare both posts. Reactivate it and restore its settings before the next hypothesis. If the form returns, send this specific result to the provider; if nothing changes, keep that observation and have the diagnosis continued rather than accumulating deactivations.

Validate the result and provide an actionable case

Reopen the post after saving and check the public page on a wide screen and on mobile. Verify the comment field, its button, and any login instructions. Older comments must remain present if they were there before the intervention. Also check the reference post for an unwanted effect from the global setting or shared template.

The appearance of fields proves that they display, not that a message is fully received. If a submission test is necessary, perform it in the prepared environment with notifications disabled and an identifiable comment. Verify its receipt and status in the administration area. Waiting for moderation may be the normal intended result; it does not require reopening the form again.

If the cause remains unknown, send the two addresses, dates, cleaned screenshots, Discussion status, closure interval, versions, and logged-in or logged-out results. Specify the tests carried out and undone, without attaching a password or an archive containing private comments.

Finally, keep a record of the chosen setting and its scope. Before a template or comment-policy change, repeat this comparison on a recent post and an old one. You will be able to distinguish intentional closure from accidental disappearance without reopening every piece of content or rebuilding its presentation.

Restore the comments call in a classic theme

This correction is for the developer of a classic theme whose post template has genuinely lost the comments call. It does not apply to a block theme’s HTML templates: use the native blocks described above instead. No commenting plugin is needed to restore this native function.

On a test copy, identify the template actually used and its position in the WordPress loop. In an already configured child theme, keep a private copy of the file before editing. If no equivalent call exists, place this fragment in a PHP area of the template after the post content:

The condition keeps already published comments visible even when new comments are closed. It does not reopen discussion: the post settings and comments template still determine whether a form is offered. Do not add this code to functions.php or a second time in a template that already delegates comments to a component.

Check an open post without comments, an open post with comments, and a closed post with existing comments. The form must appear only in the permitted context. If the display deteriorates, restore the saved child-theme file, then check these three cases again before resuming diagnosis.

if ( comments_open() || get_comments_number() ) {
    comments_template();
}

Sources and references

Use these references to check the features, requirements and limitations described. Reading documentation is not a practical test.

View 18 references

English translation of the reviewed French edition. Code examples retain their original identifiers, comments and output strings for reproducibility. Linked exercise files and original screenshots may contain French. No new practical tests or price checks are implied by translation.

Continue reading in English