{"id":305672,"date":"2026-05-10T20:33:17","date_gmt":"2026-05-10T20:33:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/html-page-publisher\/"},"modified":"2026-05-10T23:03:01","modified_gmt":"2026-05-10T23:03:01","slug":"html-page-publisher","status":"publish","type":"plugin","link":"https:\/\/si.wordpress.org\/plugins\/html-page-publisher\/","author":23084196,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"HTML Page Publisher","header_author":"Hossein Karami","header_description":"Upload standalone HTML files (including AI-generated pages from Claude Design, ChatGPT, Gemini, v0, Bolt) and publish them as landing pages at a configurable URL. Optional subdomain routing.","assets_banners_color":"7c7baa","last_updated":"2026-05-10 23:03:01","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/hosseinkarami?utm_source=wordpress.org&utm_medium=plugin-page&utm_campaign=donate&utm_content=readme-donate","header_plugin_uri":"https:\/\/github.com\/HosseinKarami\/html-page-publisher","header_author_uri":"https:\/\/hosseinkarami.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"hosseinkarami","date":"2026-05-10 20:32:45"},"1.1.0":{"tag":"1.1.0","author":"hosseinkarami","date":"2026-05-10 23:03:01"}},"upgrade_notice":{"1.1.0":"<p>Branded admin footer, contextual Help tab, refreshed UI, and donate\/support links. Fully backward-compatible.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3528012,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3528012,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3528012,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3528012,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3528012,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3528012,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3528081,"resolution":"1","location":"assets","locale":"","width":3456,"height":2210},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3528081,"resolution":"2","location":"assets","locale":"","width":3456,"height":2034}},"screenshots":{"1":"Upload new page and list existing pages.","2":"Settings page for URL prefix and optional subdomain."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,216196,229563,246,808],"plugin_category":[],"plugin_contributors":[236828],"plugin_business_model":[],"class_list":["post-305672","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-claude","plugin_tags-html","plugin_tags-landing-page","plugin_contributors-hosseinkarami","plugin_committers-hosseinkarami"],"banners":{"banner":"https:\/\/ps.w.org\/html-page-publisher\/assets\/banner-772x250.png?rev=3528012","banner_2x":"https:\/\/ps.w.org\/html-page-publisher\/assets\/banner-1544x500.png?rev=3528012","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/html-page-publisher\/assets\/icon.svg?rev=3528012","icon":"https:\/\/ps.w.org\/html-page-publisher\/assets\/icon.svg?rev=3528012","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/html-page-publisher\/assets\/screenshot-1.png?rev=3528081","caption":"Upload new page and list existing pages."},{"src":"https:\/\/ps.w.org\/html-page-publisher\/assets\/screenshot-2.png?rev=3528081","caption":"Settings page for URL prefix and optional subdomain."}],"raw_content":"<!--section=description-->\n<p>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 <strong>Claude Design<\/strong> 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.<\/p>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>Simple admin UI: upload one HTML file + its image assets, get a public URL<\/li>\n<li><strong>Automatic cleanup of AI-export wrappers<\/strong>: strips runtime code some AI HTML export tools inject so the published page is pure static HTML<\/li>\n<li><strong>Configurable URL prefix<\/strong>: default <code>\/pages\/your-slug\/<\/code>, change to anything you like (e.g. <code>\/resources\/<\/code>, <code>\/guides\/<\/code>)<\/li>\n<li><strong>Optional subdomain routing<\/strong>: point <code>sales.example.com<\/code> at your site and pages appear at <code>sales.example.com\/your-slug\/<\/code><\/li>\n<li><strong>Secure by default<\/strong>: nonce-protected forms, capability checks, path-traversal guards, and strict file-extension filtering<\/li>\n<li><strong>Extensible<\/strong>: use the <code>htmlpp_sanitize_html<\/code> filter to add cleanup rules for other AI export formats<\/li>\n<\/ul>\n\n<p><strong>Use cases<\/strong><\/p>\n\n<ul>\n<li>Publishing landing pages generated by Claude Design<\/li>\n<li>Publishing HTML from ChatGPT, Gemini, v0, Bolt, and other AI tools<\/li>\n<li>Sales collateral (rate cards, one-pagers, proposals)<\/li>\n<li>Campaign landing pages and microsites<\/li>\n<li>Rapid-publishing static HTML without touching the theme or FTP<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>html-page-publisher<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install from Plugins \u2192 Add New).<\/li>\n<li>Activate the plugin from the Plugins screen.<\/li>\n<li>Go to <strong>HTML Pages<\/strong> in the admin sidebar to upload your first page.<\/li>\n<li>(Optional) Visit <strong>HTML Pages \u2192 Settings<\/strong> to change the URL prefix or configure a subdomain.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20are%20uploaded%20pages%20stored%3F\"><h3>Where are uploaded pages stored?<\/h3><\/dt>\n<dd><p>In <code>wp-content\/uploads\/html-page-publisher\/&lt;slug&gt;\/<\/code>. Each page has its own directory containing an <code>index.html<\/code> and an <code>assets\/<\/code> folder for images.<\/p><\/dd>\n<dt id=\"how%20do%20i%20use%20the%20subdomain%20feature%3F\"><h3>How do I use the subdomain feature?<\/h3><\/dt>\n<dd><p>Two steps:<\/p>\n\n<ol>\n<li><strong>DNS<\/strong>: Add an A or CNAME record pointing your subdomain (e.g. <code>sales.yourdomain.com<\/code>) at the same server as your WordPress site.<\/li>\n<li><strong>Web server<\/strong>: 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.<\/li>\n<\/ol>\n\n<p>Then enter the hostname in <strong>HTML Pages \u2192 Settings \u2192 Subdomain<\/strong>. Pages will be served at <code>https:\/\/sales.yourdomain.com\/your-slug\/<\/code> in addition to the regular prefix URL.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20upload%20arbitrary%20html%3F\"><h3>Is it safe to upload arbitrary HTML?<\/h3><\/dt>\n<dd><p>Only users with the <code>manage_options<\/code> capability (administrators by default) can upload pages. Uploaded HTML is served as-is, including any <code>&lt;script&gt;<\/code> 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.<\/p><\/dd>\n<dt id=\"will%20uninstalling%20delete%20my%20pages%3F\"><h3>Will uninstalling delete my pages?<\/h3><\/dt>\n<dd><p>No. Uninstalling removes the plugin's settings but leaves the uploaded pages in <code>wp-content\/uploads\/html-page-publisher\/<\/code> intact. Delete that folder manually if you want to remove them.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%20or%20a%20cdn%3F\"><h3>Does this work with caching plugins or a CDN?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Branded admin footer with author attribution, support, and donate links.<\/li>\n<li>New: Contextual Help tab on plugin admin pages (Overview, FAQ, Support).<\/li>\n<li>New: Settings and Donate links added to the WordPress plugins list (action links and row meta).<\/li>\n<li>Improved: Refreshed hero design with a custom plugin icon.<\/li>\n<li>Improved: Cleaner hero buttons with corner radius matching the rest of the admin UI.<\/li>\n<li>Improved: Settings page icon updated to a clearer sliders icon.<\/li>\n<li>Improved: Help \/ Screen Options bar repositioned below the hero for a cleaner layout.<\/li>\n<li>Improved: Admin footer now flows naturally below content and stays visible on small screens.<\/li>\n<li>Improved: Microcopy cleanup across admin strings.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Upload HTML + image assets via admin UI.<\/li>\n<li>Automatic stripping of AI-export runtime wrappers.<\/li>\n<li>Configurable URL prefix (default <code>\/pages\/<\/code>).<\/li>\n<li>Optional subdomain routing.<\/li>\n<\/ul>","raw_excerpt":"Publish HTML landing pages (including output from Claude Design, ChatGPT, Gemini, v0, and Bolt) at a clean, configurable URL.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305672"}],"author":[{"embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hosseinkarami"}],"wp:attachment":[{"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305672"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305672"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305672"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305672"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305672"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/si.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}