=== HeroBytes Hide Title & Meta ===
Contributors: herovibes
Tags: hide title, featured image, post meta, block theme, author
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Hide the title, featured image, author, date, categories or comments on any post or page. Block and classic themes. Never touches menus.

== Description ==

Sometimes a page just should not show its title: a landing page built with blocks or a page builder, a home page, a "thank you" page. Or a post should not show its date, its author or its comments.

**Hide Title & Meta** adds a small panel to the editor of every post and page with one checkbox per element:

* Title
* Featured image
* Author
* Date
* Categories & tags
* Comments

Tick, update, done.

= Built for today's WordPress =

* **Block themes (Full Site Editing).** The plugin removes the actual blocks (`Post Title`, `Post Featured Image`, `Post Author`, `Post Date`, `Post Terms`, `Comments`) from the page. No CSS tricks, no empty boxes.
* **Classic themes and page builders.** The template tags return empty output and a small CSS fallback hides the usual wrappers. Works with Elementor's theme builder widgets too.
* **Menus and lists are never affected.** Older plugins of this kind blanked the page name in navigation menus, page lists and "recent posts" widgets. This one tracks where the title is being printed and only hides it in the page's own header.
* **SEO stays intact.** The `<title>` tag and social sharing tags keep the real title because the filters are attached after the `<head>` is printed.

= Defaults per post type =

In *Settings > Hide Title & Meta* you can choose which post types get the panel and which elements are hidden by default on each of them (for example: hide the title on every page). Any individual item can still override the default.

= For developers =

* `htam_should_hide` filter: `( bool $hide, string $element, int $post_id )`.
* `htam_selectors` filter: `( string[] $selectors, string $element )` to tune the CSS fallback.
* `htam_elements` filter: add or change elements, their blocks and selectors.
* Meta keys: `_htam_hide_title`, `_htam_hide_featured_image`, `_htam_hide_author`, `_htam_hide_date`, `_htam_hide_terms`, `_htam_hide_comments`. Values: `1` hide, `0` show, empty = inherit the post type default.

No external requests, no tracking, no accounts. Uninstalling removes the option and the post meta.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install it from *Plugins > Add New*.
2. Activate it.
3. Edit any post or page: the **Hide Title & Meta** panel appears in the sidebar (block editor) or as a box in the right column (classic editor).
4. Optional: set per-post-type defaults in *Settings > Hide Title & Meta*.

== Frequently Asked Questions ==

= The title is still visible in my classic theme =

Your theme probably uses an unusual class name for the title. Go to *Settings > Hide Title & Meta > Extra CSS selectors* and add the selector your theme uses (right-click the title, *Inspect*, copy its class). You can also hook the `htam_selectors` filter.

= Will the page disappear from my navigation menu? =

No. Menus, page lists, breadcrumbs and widgets keep the title. Only the title printed in the page's own header is hidden.

= Does it change the browser tab title or the SEO title? =

No. The `<title>` tag and the Open Graph / Twitter tags keep the real title.

= Does it work with Elementor, Divi or other page builders? =

Yes for the single-post template widgets that call the standard WordPress template tags (title, featured image, post info). Builders that print their own HTML outside those functions may need an extra CSS selector (see above).

= Does it work on archives or the blog page? =

The options apply to the item's own page (the "singular" view). Archives, search results and the blog index are left untouched on purpose.

= Can I hide the title on all pages at once? =

Yes. In *Settings > Hide Title & Meta*, tick *Title* in the *Page* row under *Hidden by default*. Any page can still show its title again from its own editor panel.

= Does hiding the comments also close them? =

No. Hiding the comments removes the comment list and the form from the page, but the post stays open to comments: a request sent directly to `wp-comments-post.php` is still accepted. To stop accepting comments, untick *Allow comments* in the post's *Discussion* settings (or disable them site-wide in *Settings > Discussion*).

== Screenshots ==

1. The panel in the block editor sidebar.
2. A page on a block theme with the title and featured image hidden.
3. Settings: post types, defaults per post type and the CSS fallback.
4. The meta box in the classic editor.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
