Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

To hide the visible heading on only selected WordPress posts, first identify your theme type. With a block theme, assign those posts a duplicate template that has no Title block. With a classic theme, add a post-ID CSS rule in Appearance → Customize → Additional CSS. In both cases, keep the title saved in the editor so WordPress can retain a useful slug and search context.

Check whether your site uses a block or classic theme

Your admin menu determines the correct method:

  • Block theme: you see Appearance → Editor. Templates and blocks control the front-end layout.
  • Classic theme: you see Appearance → Customize. CSS in the Customizer can target an individual post.

Do not remove the title from the post editor just to remove its heading. WordPress.com explains that the title is used in search-result displays; if no title is entered, the slug can fall back to the post or page ID. The goal is to hide the visual heading while preserving the saved title.

Block themes: create a template without the Title block

In a block theme, the title is normally supplied by the template rather than by content typed into the post body. The core Title block dynamically displays the current post, page, or other content title and is represented as <!-- wp:post-title /--> (WordPress.org Title block documentation).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Find the template used by the posts

  1. Open Appearance → Editor → Templates.
  2. Identify the single-post template assigned to the content. The Theme Handbook documents single.html as the individual blog-post template in a block theme (WordPress Theme Handbook: Templates).
  3. Also check whether the posts use a custom template already.

2. Duplicate the template

Use the template’s options to create a copy. Keep the original template unchanged so posts that should continue showing titles are not affected.

3. Remove only the Title block in the copy

Edit the duplicate, select the Title (or Post Title) block, and remove it. Leave the post content, featured image, navigation, and other layout blocks in place. Save the template.

4. Assign the copy to selected posts

Open each post, choose the duplicate under the post’s Template setting, and update the post. Only posts assigned to that template lose the visible heading.

Avoid deleting the Title block from a shared template: that would hide titles for every post using it. A homepage set to Your latest posts uses the homepage template; a static homepage is a regular page and follows the page-template workflow, as explained in WordPress.com’s guide (Hide WordPress Page or Post Titles).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Classic themes: target one post with CSS

Classic themes usually print the title with a theme-specific class. WordPress.com gives this pattern for most classic themes:

.postid-123 .entry-title {
  display: none;
}

Find the post ID

  1. Open the post in the WordPress editor.
  2. Look at the edit URL. The number after post= is the post ID; for example, post=123 means the ID is 123.

Add the rule

  1. Go to Appearance → Customize → Additional CSS.
  2. Replace 123 with the actual ID.
  3. Click Publish, then view the post in a logged-out window or private browser tab.

On WordPress.com, the cited guide lists custom CSS for Personal, Premium, Business, and Commerce plans and says free sites must upgrade for that feature; plan availability can change, so verify it in your account (WordPress.com Support).

If .entry-title does not work

Theme authors do not all use the same class. Right-click the visible heading on the published page, choose Inspect, and identify its class or element. Replace .entry-title with that selector while retaining the post-ID prefix, for example:

.postid-123 .your-theme-title-class {
  display: none;
}

Keep the post-ID prefix; otherwise the rule may hide titles site-wide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Optional: use a per-post title-visibility plugin

If you want an editor checkbox instead of templates or CSS, MM Title Manager’s WordPress.org listing describes global title-visibility settings plus a per-page or per-post sidebar option labeled Hide title on this page. It says navigation menu labels remain intact. The listing reports version 1.12, released August 20, 2026, and tested with WordPress 7.1 (MM Title Manager — Hide Page and Post Titles).

Before installing, check the current listing for maintenance activity, compatibility with your WordPress version and theme, and licensing. A plugin adds another dependency; built-in templates or CSS are easier to remove if your needs are limited to a few posts.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose the method by scope and maintenance

Method Best for Scope How to reverse it
Duplicate block template without Title block Block-theme sites needing a visual layout variant Only posts assigned to the duplicate Reassign the original template or restore the Title block
Post-ID CSS Classic themes and a small number of posts Only the specified post IDs Remove the rule from Additional CSS
MM Title Manager Editors who want a per-item control in the sidebar Individual posts or pages, subject to plugin settings Uncheck the option or deactivate/remove the plugin

Troubleshoot a title that still appears

The title disappeared from more posts than intended

  • In a block theme, restore the Title block in the shared template and use a duplicate for the exceptions.
  • In a classic theme, confirm that the CSS begins with the correct .postid-ID selector and contains no site-wide title rule.

The block-template change has no effect

  • Confirm the post is assigned to the duplicate template.
  • Check whether a more specific custom template is being used.
  • Clear any page, server, or CDN cache and test while logged out.

The CSS selector matches nothing

Inspect the rendered heading and use the class supplied by the active theme. A theme may use a selector other than .entry-title; the WordPress.com guide specifically warns about this variation.

The heading is hidden but empty space remains

Removing a block-template Title block usually removes its layout space. CSS display: none removes the matched element, but surrounding margins or a separate wrapper may still create space. Inspect the parent container and adjust only that post’s styling if needed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Advanced theme-code option

Theme developers can define per-block CSS in theme.json, including rules for the core/post-title block. WordPress 6.2 added per-block CSS support in theme.json; the Developer Blog describes the approach (Per-block CSS with theme.json). This is appropriate when you maintain the theme itself, not when you simply need to hide a heading on a few existing posts.

Keep the title data even when the heading is hidden

The saved title still identifies the post in the editor, feeds, administrative screens, browser metadata, and search contexts. Hide the front-end heading through a scoped template, selector, or per-item control rather than deleting the title field. WordPress.com summarizes the purpose as hiding a page or post title so it remains available for SEO while not appearing on the published page (WordPress.com Support).

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.