{"id":293137,"date":"2026-04-01T08:27:00","date_gmt":"2026-04-01T08:27:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/share-draft-post\/"},"modified":"2026-04-01T09:11:26","modified_gmt":"2026-04-01T09:11:26","slug":"tidy-draft-share","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/tidy-draft-share\/","author":23467890,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.2","requires_plugins":null,"header_name":"Tidy Draft Share","header_author":"Pierre","header_description":"Share unpublished posts with anyone via a secure private link. Works with drafts, pending, scheduled and private posts.","assets_banners_color":"7535d9","last_updated":"2026-04-01 09:11:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/tidy-draft-share","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"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":"pierreferrolliet","date":"2026-04-01 09:11:26"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3497188,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3497188,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3497188,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3497188,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Editor sidebar<\/strong> \u2014 The Share Draft panel in the Gutenberg block editor, with link creation, copy, and revoke controls","2":"<strong>Active share link<\/strong> \u2014 A live link showing expiration date, view count, and quick actions","3":"<strong>Posts list<\/strong> \u2014 One-click \"Share draft\" action directly from the posts table","4":"<strong>Settings page<\/strong> \u2014 Configure default expiration and enabled post types","5":"<strong>Draft preview<\/strong> \u2014 What the recipient sees: the full post with a \"Draft preview\" banner at the top","6":"<strong>Expired link<\/strong> \u2014 The clean error page shown when a link has expired"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[156887,208235,259181,259178,259175],"plugin_category":[],"plugin_contributors":[259182],"plugin_business_model":[],"class_list":["post-293137","plugin","type-plugin","status-publish","hentry","plugin_tags-client-review","plugin_tags-draft-preview","plugin_tags-draft-sharing","plugin_tags-preview-link","plugin_tags-share-draft","plugin_contributors-pierreferrolliet","plugin_committers-pierreferrolliet"],"banners":{"banner":"https:\/\/ps.w.org\/tidy-draft-share\/assets\/banner-772x250.png?rev=3497188","banner_2x":"https:\/\/ps.w.org\/tidy-draft-share\/assets\/banner-1544x500.png?rev=3497188","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tidy-draft-share\/assets\/icon-128x128.png?rev=3497188","icon_2x":"https:\/\/ps.w.org\/tidy-draft-share\/assets\/icon-256x256.png?rev=3497188","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Tidy Draft Share<\/strong> lets you share any unpublished WordPress post with clients, editors, or collaborators \u2014 without publishing it and without giving them a WordPress account.<\/p>\n\n<p>Generate a secure, time-limited link and send it to anyone. They will see the post exactly as it will look once published: same theme, same layout, same formatting.<\/p>\n\n<h4>Why Tidy Draft Share?<\/h4>\n\n<p>Most editorial workflows hit the same wall: <em>\"Can you take a look at this before I publish it?\"<\/em>. The usual workarounds \u2014 copying text into an email, exporting a PDF, or creating a temporary user account \u2014 are clunky and error-prone.<\/p>\n\n<p>Tidy Draft Share solves this with a single click. Create a link, send it, done. The recipient sees a pixel-perfect preview of the post inside your actual theme. When the link expires, access is gone.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>One-click sharing<\/strong> \u2014 Generate a secure link from the editor sidebar or the posts list, and copy it to your clipboard instantly<\/li>\n<li><strong>Flexible expiration<\/strong> \u2014 Choose from 1 hour, 24 hours, 3 days, 7 days, 30 days, or no expiration at all<\/li>\n<li><strong>Revoke anytime<\/strong> \u2014 Disable any link immediately with one click; access stops on the spot<\/li>\n<li><strong>Multiple links per post<\/strong> \u2014 Create separate links for different reviewers, each with its own expiration and view count<\/li>\n<li><strong>View tracking<\/strong> \u2014 See how many times each link has been opened<\/li>\n<li><strong>Works everywhere<\/strong> \u2014 Supports posts, pages, and any custom post type (WooCommerce products, portfolio items, etc.)<\/li>\n<li><strong>All unpublished statuses<\/strong> \u2014 Drafts, pending review, scheduled, and private posts<\/li>\n<li><strong>SEO safe<\/strong> \u2014 Shared previews include a noindex\/nofollow meta tag automatically, so search engines never index them<\/li>\n<li><strong>Preview banner<\/strong> \u2014 A clear \"Draft preview\" banner at the top of the page tells the reader the content is not published yet<\/li>\n<li><strong>Expired link page<\/strong> \u2014 Visitors see a clean, branded message when a link has expired instead of a confusing error<\/li>\n<li><strong>Gutenberg &amp; Classic<\/strong> \u2014 Full sidebar panel in the block editor, classic meta box for older setups<\/li>\n<li><strong>Quick share from posts list<\/strong> \u2014 One-click share directly from your posts table, no need to open the editor<\/li>\n<li><strong>Clean uninstall<\/strong> \u2014 All data is removed from your database when the plugin is deleted<\/li>\n<\/ul>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li>Share a formatted article with a client for approval before publishing<\/li>\n<li>Let an external editor proofread a draft without creating a WordPress account<\/li>\n<li>Preview scheduled content with your marketing team or stakeholders<\/li>\n<li>Send a private post to a specific person without opening it to all logged-in users<\/li>\n<\/ul>\n\n<h4>Privacy &amp; security<\/h4>\n\n<p>Every share link uses a cryptographically secure 32-character token. Token validation uses constant-time comparison to prevent timing attacks. Links are checked on every visit \u2014 expired or revoked links return a 403 immediately. No data is sent to external servers; everything stays in your WordPress database.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tidy-draft-share<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install directly from the WordPress plugin directory<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu<\/li>\n<li>Edit any unpublished post and find the <strong>Share Draft<\/strong> panel in the editor sidebar<\/li>\n<li>Click <strong>Create share link<\/strong>, choose an expiration, and share the URL<\/li>\n<\/ol>\n\n<p>You can also create share links directly from the <strong>Posts<\/strong> list without opening the editor.<\/p>\n\n<h4>Configuration<\/h4>\n\n<p>Head to <strong>Settings \u2192 Tidy Draft Share<\/strong> to:<\/p>\n\n<ul>\n<li>Set the default expiration for new links<\/li>\n<li>Choose which post types support draft sharing<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20recipient%20need%20a%20wordpress%20account%3F\"><h3>Does the recipient need a WordPress account?<\/h3><\/dt>\n<dd><p>No. Anyone with the link can view the post \u2014 that's the whole point. No login, no account, no friction.<\/p><\/dd>\n<dt id=\"what%20post%20types%20are%20supported%3F\"><h3>What post types are supported?<\/h3><\/dt>\n<dd><p>Posts and pages out of the box. You can enable any registered custom post type (WooCommerce products, portfolio items, etc.) from the settings page.<\/p><\/dd>\n<dt id=\"can%20i%20create%20multiple%20links%20for%20the%20same%20post%3F\"><h3>Can I create multiple links for the same post?<\/h3><\/dt>\n<dd><p>Yes. Each link has its own expiration and view count. Handy when you want to share with different people and track access separately.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20link%20expires%3F\"><h3>What happens when a link expires?<\/h3><\/dt>\n<dd><p>The visitor sees a clean \"This link has expired\" page with a link to your homepage. The post remains unpublished and untouched.<\/p><\/dd>\n<dt id=\"can%20i%20revoke%20a%20link%20before%20it%20expires%3F\"><h3>Can I revoke a link before it expires?<\/h3><\/dt>\n<dd><p>Yes. Click <strong>Revoke<\/strong> next to the link in the editor sidebar or meta box. Access stops immediately.<\/p><\/dd>\n<dt id=\"will%20shared%20drafts%20appear%20in%20google%3F\"><h3>Will shared drafts appear in Google?<\/h3><\/dt>\n<dd><p>No. Every shared preview includes a <code>noindex, nofollow<\/code> meta tag. Search engines are instructed not to index the page.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20publish%20the%20post%20while%20a%20share%20link%20is%20still%20active%3F\"><h3>What happens if I publish the post while a share link is still active?<\/h3><\/dt>\n<dd><p>Visitors who use the share link are automatically redirected to the published permalink.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20slow%20down%20my%20site%3F\"><h3>Does the plugin slow down my site?<\/h3><\/dt>\n<dd><p>Not at all. The plugin only runs its logic when a share token is present in the URL. Regular visitors are completely unaffected.<\/p><\/dd>\n<dt id=\"is%20my%20data%20safe%20if%20i%20uninstall%3F\"><h3>Is my data safe if I uninstall?<\/h3><\/dt>\n<dd><p>When you delete the plugin through WordPress, all share link data and settings are removed from your database. Nothing is left behind.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Share unpublished WordPress posts with anyone via secure, expiring preview links \u2014 no login required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/293137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=293137"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pierreferrolliet"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=293137"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=293137"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=293137"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=293137"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=293137"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=293137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}