Title: HTML Page Publisher
Author: Hossein Karami
Published: <strong>10 May 2026</strong>
Last modified: 21 May 2026

---

Qoşmaları axtar

![](https://ps.w.org/html-page-publisher/assets/banner-772x250.png?rev=3528012)

![](https://ps.w.org/html-page-publisher/assets/icon.svg?rev=3528012)

# HTML Page Publisher

 By [Hossein Karami](https://profiles.wordpress.org/hosseinkarami/)

[Download](https://downloads.wordpress.org/plugin/html-page-publisher.1.2.1.zip)

 * [Details](https://az.wordpress.org/plugins/html-page-publisher/#description)
 * [Reviews](https://az.wordpress.org/plugins/html-page-publisher/#reviews)
 *  [Installation](https://az.wordpress.org/plugins/html-page-publisher/#installation)
 * [Development](https://az.wordpress.org/plugins/html-page-publisher/#developers)

 [Dəstək](https://wordpress.org/support/plugin/html-page-publisher/)

## Description

HTML Page Publisher lets you drop a standalone HTML file into WordPress and have
it served as a landing page at a clean URL. Works with output from **Claude Design**
and HTML exported from other AI tools like ChatGPT, Gemini, v0, and Bolt, and with
any hand-written static HTML too. Perfect for sales collateral, one-pagers, lead-
gen pages, and campaign microsites.

**Key features**

 * Simple admin UI: upload one HTML file + its image assets, get a public URL
 * **Built-in HTML editor**: edit a published page right in the dashboard with the
   native WordPress code editor (syntax highlighting), no FTP needed
 * **Version history**: every save snapshots the previous version; restore any earlier
   version with one click (restoring is itself undoable)
 * **Image management**: add, replace, or delete a page’s images in place — Replace
   keeps the original filename so existing references keep working
 * **Automatic cleanup of AI-export wrappers**: strips runtime code some AI HTML
   export tools inject so the published page is pure static HTML
 * **Configurable URL prefix**: default `/pages/your-slug/`, change to anything 
   you like (e.g. `/resources/`, `/guides/`)
 * **Optional subdomain routing**: point `sales.example.com` at your site and pages
   appear at `sales.example.com/your-slug/`
 * **Secure by default**: nonce-protected forms, capability checks, path-traversal
   guards, and strict file-extension filtering
 * **Extensible**: use the `htmlpp_sanitize_html` filter to add cleanup rules for
   other AI export formats

**Use cases**

 * Publishing landing pages generated by Claude Design
 * Publishing HTML from ChatGPT, Gemini, v0, Bolt, and other AI tools
 * Sales collateral (rate cards, one-pagers, proposals)
 * Campaign landing pages and microsites
 * Rapid-publishing static HTML without touching the theme or FTP

## Screenshots

 * [[
 * Upload new page and list existing pages.
 * [[
 * Settings page for URL prefix and optional subdomain.

## Installation

 1. Upload the `html-page-publisher` folder to `/wp-content/plugins/` (or install from
    Plugins  Add New).
 2. Activate the plugin from the Plugins screen.
 3. Go to **HTML Pages** in the admin sidebar to upload your first page.
 4. (Optional) Visit **HTML Pages  Settings** to change the URL prefix or configure
    a subdomain.

## FAQ

### Where are uploaded pages stored?

In `wp-content/uploads/html-page-publisher/<slug>/`. Each page has its own directory
containing an `index.html` and an `assets/` folder for images. Version-history snapshots
are kept separately in `wp-content/uploads/html-page-publisher-backups/<slug>/`.

### How do I edit a page or change its images after publishing?

Open **HTML Pages**, click **Edit** on a page. You get the native WordPress code
editor for the HTML, a Version History panel to restore earlier saves, and an Images&
Assets panel to add, replace, or delete the page’s images without re-uploading the
HTML. Use **Replace** (rather than uploading a new file) to swap an image while 
keeping the same filename, so existing `assets/...` references in your HTML keep
working.

### Can I lock down editing?

Yes. The standard `DISALLOW_FILE_EDIT` (or `DISALLOW_FILE_MODS`) constant in `wp-
config.php` disables in-dashboard HTML editing and image changes here too, the same
way it disables WordPress’s core file editor.

### How do I use the subdomain feature?

Two steps:

 1. **DNS**: Add an A or CNAME record pointing your subdomain (e.g. `sales.yourdomain.
    com`) at the same server as your WordPress site.
 2. **Web server**: Configure your hosting to serve that subdomain from the same WordPress
    install. On shared hosting with cPanel this is typically an “addon domain” or “
    subdomain” option. On managed hosts, you may need to request it from support.

Then enter the hostname in **HTML Pages  Settings  Subdomain**. Pages will be served
at `https://sales.yourdomain.com/your-slug/` in addition to the regular prefix URL.

### Is it safe to upload arbitrary HTML?

Only users with the `manage_options` capability (administrators by default) can 
upload pages. Uploaded HTML is served as-is, including any `<script>` tags it contains,
so only upload HTML you trust. The plugin strips known runtime wrappers injected
by some AI export tools but does not otherwise filter markup.

### Will uninstalling delete my pages?

No. Uninstalling removes the plugin’s settings but leaves the uploaded pages in `
wp-content/uploads/html-page-publisher/` (and their version-history snapshots in`
wp-content/uploads/html-page-publisher-backups/`) intact. Delete those folders manually
if you want to remove them.

### Does this work with caching plugins or a CDN?

Pages are served via a direct PHP readfile that happens before WordPress’s main 
query runs. Most page caches (WP Rocket, W3 Total Cache) won’t cache these URLs 
by default. If you want them cached at the CDN edge, add the URL pattern to your
caching rules. They’re plain HTML with cache-friendly headers.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“HTML Page Publisher” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Hossein Karami ](https://profiles.wordpress.org/hosseinkarami/)

[Translate “HTML Page Publisher” into your language.](https://translate.wordpress.org/projects/wp-plugins/html-page-publisher)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/html-page-publisher/),
check out the [SVN repository](https://plugins.svn.wordpress.org/html-page-publisher/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/html-page-publisher/)
by [RSS](https://plugins.trac.wordpress.org/log/html-page-publisher/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.1

 * Fixed: Other plugins’ admin notices no longer render inside the plugin’s hero
   header; they now appear below it via a `.wp-header-end` marker.
 * Compatibility: Tested up to WordPress 7.0.

#### 1.2.0

 * New: In-browser HTML editor for published pages, using the native WordPress code
   editor (syntax highlighting). No FTP required.
 * New: Version history — every save snapshots the previous version; restore any
   earlier version with one click, and restoring is itself undoable. Retention is
   filterable via `htmlpp_max_backups` (default 10).
 * New: Per-page image management — add, replace, or delete a page’s images in place.
   Replace overwrites the original filename so existing HTML references keep working.
 * New: Editing respects `DISALLOW_FILE_EDIT` / `DISALLOW_FILE_MODS`, mirroring 
   WordPress’s core file-editor lockdown.
 * Improved: Large or minified files automatically fall back to a plain text editor
   so the browser stays responsive; the editor is a fixed-height box that scrolls
   internally.
 * Security: Editing and image actions reuse the existing nonce, `manage_options`,
   MIME-whitelist, and realpath path-traversal protections; backups are stored outside
   the publicly served directory.

#### 1.1.0

 * New: Branded admin footer with author attribution, support, and donate links.
 * New: Contextual Help tab on plugin admin pages (Overview, FAQ, Support).
 * New: Settings and Donate links added to the WordPress plugins list (action links
   and row meta).
 * Improved: Refreshed hero design with a custom plugin icon.
 * Improved: Cleaner hero buttons with corner radius matching the rest of the admin
   UI.
 * Improved: Settings page icon updated to a clearer sliders icon.
 * Improved: Help / Screen Options bar repositioned below the hero for a cleaner
   layout.
 * Improved: Admin footer now flows naturally below content and stays visible on
   small screens.
 * Improved: Microcopy cleanup across admin strings.

#### 1.0.0

 * Initial release.
 * Upload HTML + image assets via admin UI.
 * Automatic stripping of AI-export runtime wrappers.
 * Configurable URL prefix (default `/pages/`).
 * Optional subdomain routing.

## Meta

 *  Version **1.2.1**
 *  Last updated **1 gün öncə**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/html-page-publisher/)
 * Tags
 * [AI](https://az.wordpress.org/plugins/tags/ai/)[ChatGPT](https://az.wordpress.org/plugins/tags/chatgpt/)
   [Claude](https://az.wordpress.org/plugins/tags/claude/)[html](https://az.wordpress.org/plugins/tags/html/)
   [landing page](https://az.wordpress.org/plugins/tags/landing-page/)
 *  [Advanced View](https://az.wordpress.org/plugins/html-page-publisher/advanced/)

## Reytinqlər

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/html-page-publisher/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/html-page-publisher/reviews/)

## Contributors

 *   [ Hossein Karami ](https://profiles.wordpress.org/hosseinkarami/)

## Dəstək

Şərhiniz varmı? Yardım lazımdırmı?

 [Dəstək forumuna bax](https://wordpress.org/support/plugin/html-page-publisher/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://buymeacoffee.com/hosseinkarami?utm_source=wordpress.org&utm_medium=plugin-page&utm_campaign=donate&utm_content=readme-donate)