{"id":329152,"date":"2026-06-28T15:15:38","date_gmt":"2026-06-28T15:15:38","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/public-preview-url-manager\/"},"modified":"2026-06-28T15:15:20","modified_gmt":"2026-06-28T15:15:20","slug":"public-preview-url-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/public-preview-url-manager\/","author":18675011,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Public Preview URL Manager","header_author":"Sudip Debnath","header_description":"Generates secure, time-sensitive public preview links for drafts and scheduled posts with configurable expiry.","assets_banners_color":"","last_updated":"2026-06-28 15:15:20","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/sudipdebnath-cloud.github.io\/","header_plugin_uri":"","header_author_uri":"https:\/\/sudipdebnath-cloud.github.io\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"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":"developersd","date":"2026-06-28 15:15:20"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3589005,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3589005,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Document Sidebar Meta box showcasing the copy button setup.","2":"The Admin settings dashboard detailing the smooth never-expire visibility transition toggle switch."}},"plugin_section":[],"plugin_tags":[2007,4665,2475,6502,20977],"plugin_category":[],"plugin_contributors":[269280,269281],"plugin_business_model":[],"class_list":["post-329152","plugin","type-plugin","status-publish","hentry","plugin_tags-cpt","plugin_tags-draft","plugin_tags-preview","plugin_tags-scheduled","plugin_tags-share-link","plugin_contributors-developersd","plugin_contributors-sudipdebnath","plugin_committers-developersd"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/public-preview-url-manager\/assets\/icon-128x128.png?rev=3589005","icon_2x":"https:\/\/ps.w.org\/public-preview-url-manager\/assets\/icon-256x256.png?rev=3589005","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Public Preview URL Manager<\/strong> solves a classic WordPress challenge: letting external stakeholders, clients, or editors review content before it goes live, without forcing them to create a WordPress account.<\/p>\n\n<p>Engineered with total compatibility for major page builders like <strong>Divi<\/strong> and <strong>Elementor<\/strong>, this plugin spoofs post states safely in memory right before layout generation. This guarantees your reviewers see the exact page layout, custom CSS, modules, and sections that will appear after formal publication.<\/p>\n\n<h3>Core Features<\/h3>\n\n<ul>\n<li><strong>Secure Cryptographic Tokens:<\/strong> Links are secured using time-sensitive hashes combined with unique security salts.<\/li>\n<li><strong>Page Builder Support:<\/strong> Designed specifically to fix blank-page layout rendering bugs common in Divi and popular builders on drafts.<\/li>\n<li><strong>Modern Switch Toggle UX:<\/strong> A native, beautiful settings wrapper using modern CSS toggles to manage link expiration.<\/li>\n<li><strong>Never Expire Mode:<\/strong> Turn on an absolute \"Never Expire\" mode to keep links active until publication.<\/li>\n<li><strong>Auto-Redirect Lifecycles:<\/strong> When a draft transitions to Published, Private, or Password-Protected, external preview links run an instant structural <code>301 Moved Permanently<\/code> redirect directly to the formal live permalink.<\/li>\n<li><strong>Custom Post Type (CPT) Ready:<\/strong> Automatically supports all public custom post types like Services, Products, Portfolios, or Case Studies.<\/li>\n<li><strong>No Database Bloat:<\/strong> Contains robust cleanup uninstallation loops that scrub choices, custom options, and variables cleanly if uninstalled.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the entire <code>public-preview-url-manager<\/code> directory to your <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Settings &gt; Public Preview<\/strong> to configure your preferred global expiration conditions.<\/li>\n<li>Open any draft post, page, or custom post type to access the safe copy-to-clipboard public sharing box.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20custom%20post%20types%3F\"><h3>Does this work with Custom Post Types?<\/h3><\/dt>\n<dd><p>Yes! It hooks dynamically into all post formats flagged with <code>'public' =&gt; true<\/code>. It will generate precise preview parameters for portfolios, landing pages, or service types natively.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20post%20gets%20published%3F\"><h3>What happens when a post gets published?<\/h3><\/dt>\n<dd><p>The token system shuts off, and any user clicking the old sharing link will be seamlessly redirected with a 301 response straight to your public live page layout.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20from%20search%20engine%20indexers%3F\"><h3>Is it safe from Search Engine indexers?<\/h3><\/dt>\n<dd><p>Absolutely. All public preview queries force an explicit <code>X-Robots-Tag: noindex, nofollow<\/code> header to prevent Google or other web crawlers from indexing unreleased content.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Stable production release.<\/li>\n<li>Resolved script and style inline block violations via enqueue hooks.<\/li>\n<li>Purged common \"wp\" prefix allocations to prevent text-domain collisions.<\/li>\n<li>Rectified readme contributor account verification criteria maps.<\/li>\n<\/ul>","raw_excerpt":"Generates secure, time-sensitive public preview links for drafts and scheduled posts, fully compatible with Divi and Elementor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=329152"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/developersd"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329152"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329152"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329152"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329152"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329152"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}