{"id":296986,"date":"2026-04-29T14:34:28","date_gmt":"2026-04-29T14:34:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/auto-post-republish\/"},"modified":"2026-04-29T14:31:18","modified_gmt":"2026-04-29T14:31:18","slug":"marketing-mystery-content-republisher","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/marketing-mystery-content-republisher\/","author":8349978,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.4","stable_tag":"1.3.4","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Marketing Mystery Content Republisher","header_author":"Dewan Shahedur Rahman","header_description":"Auto-refresh publish dates per item after a wait you set. Posts, Pages, Products, CPTs. Editor overrides.","assets_banners_color":"","last_updated":"2026-04-29 14:31:18","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wordpress.org\/plugins\/marketing-mystery-content-republisher\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/marketing-mystery-content-republisher\/","header_author_uri":"https:\/\/profiles.wordpress.org\/dewan-shahedur-rahman\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":82,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.4":{"tag":"1.3.4","author":"dewan shahedur rahman","date":"2026-04-29 14:31:18"}},"upgrade_notice":{"1.3.4":"<p>Developer hooks for extending republish behavior; clearer Force ON label. No settings migration.<\/p>","1.3.3":"<p>If upgrading from an older fork, deactivate it, install\/activate this build as <code>marketing-mystery-content-republisher<\/code>, then remove the old folder. Settings and post meta keys are unchanged (<code>wapr_options<\/code>, <code>_wapr_republish<\/code>).<\/p>","1.3.2":"<p>Security hardening for settings, editor meta, admin notices, and cron republish. No behavior change for typical sites.<\/p>","1.3.0":"<p>Republishing is now <strong>per item<\/strong> from each item\u2019s publication date, not one shared cron time for all. Existing old posts may be due immediately on the next check (batch size still applies).<\/p>","1.2.2":"<p>Monthly (and similar long) schedules: first run is after one full interval; cron stays aligned when you save Schedule.<\/p>","1.2.1":"<p>Published and modified timestamps both update on every republish.<\/p>","1.2.0":"<p>Taxonomy and term editor options removed. Eligibility is now post type + per-post override only. Save Configure to persist cleaned options.<\/p>","1.0.1":"<p>Adds manual \u201cRepublish now\u201d from the post editor.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[4567,166,5697,4062,186],"plugin_category":[40,55,59],"plugin_contributors":[261414],"plugin_business_model":[],"class_list":["post-296986","plugin","type-plugin","status-publish","hentry","plugin_tags-cron","plugin_tags-posts","plugin_tags-republish","plugin_tags-schedule","plugin_tags-seo","plugin_category-calendar-and-events","plugin_category-seo-and-marketing","plugin_category-utilities-and-tools","plugin_contributors-dewan-shahedur-rahman","plugin_committers-dewan-shahedur-rahman"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/marketing-mystery-content-republisher.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Updates <strong>publication dates<\/strong> so lists and feeds see newer timestamps. Each post, page, or product waits your chosen time after <strong>its<\/strong> publish date, then can auto-update. WP-Cron only <strong>checks<\/strong> for due items every so often (hourly \/ twice a day \/ daily), which is separate from \u201cyearly per post.\u201d<\/p>\n\n<p><strong>What gets republished<\/strong><\/p>\n\n<p>Only <strong>post-like content<\/strong>: <strong>Posts<\/strong>, <strong>Pages<\/strong>, <strong>Products<\/strong> (WooCommerce), and <strong>any other public post type<\/strong> registered by themes or plugins. Categories, tags, and other taxonomies are <strong>not<\/strong> separate targets\u2014the plugin does not \u201crepublish\u201d terms.<\/p>\n\n<p><strong>Highlights<\/strong><\/p>\n\n<ul>\n<li><strong>Schedule<\/strong> \u2014 On\/off and <strong>wait after publish date<\/strong> (hourly \u2026 yearly). New installs default to <strong>Quarter (Recommended)<\/strong> (~90 days).<\/li>\n<li><strong>Configure<\/strong> \u2014 Choose which <strong>public post types<\/strong> are included and how many items run per batch (Advanced).<\/li>\n<li><strong>Per item<\/strong> \u2014 On each post\/page\/product (etc.), override: follow site default for that type, force ON, or force OFF. <strong>Republish now<\/strong> for immediate date bump on published items.<\/li>\n<li><strong>Safe defaults<\/strong> \u2014 New custom post types appear in settings turned <strong>off<\/strong> until you enable them.<\/li>\n<\/ul>\n\n<p><strong>Important<\/strong><\/p>\n\n<ul>\n<li>Republishing sets <strong>published<\/strong> and <strong>last modified<\/strong> times to the republish moment. It does not rewrite body content.<\/li>\n<li>Uses <strong>GMT<\/strong> publish time. Bumps may trail the due moment by up to one cron check.<\/li>\n<li>WP-Cron needs traffic; use server cron + <code>wp-cron.php<\/code> for steady timing.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>Stores settings in the WordPress options table (<code>wapr_options<\/code>, <code>wapr_scheduler_sig<\/code>).<\/li>\n<li>Stores per-post choice in post meta (<code>_wapr_republish<\/code>) when not using the default.<\/li>\n<li>Does not send data to external services, analytics, or tracking endpoints.<\/li>\n<li>Scheduled work runs via WordPress\u2019s own WP-Cron on your server.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/marketing-mystery-content-republisher<\/code>, or install through Plugins \u2192 Add New.<\/li>\n<li>Activate through the Plugins screen.<\/li>\n<li><strong>Marketing Mystery Republisher \u2192 Schedule<\/strong> \u2014 turn on and set how long after each item\u2019s publish date before it can auto-bump.<\/li>\n<li>Use <strong>Marketing Mystery Republisher \u2192 Configure<\/strong> to enable post types (e.g. post, page, product) and set batch options.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20duplicate%20posts%3F\"><h3>Will this duplicate posts?<\/h3><\/dt>\n<dd><p>No. Existing posts are updated in place; no new posts are created.<\/p><\/dd>\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. Public post types are listed under Configure. New types are discovered automatically.<\/p><\/dd>\n<dt id=\"can%20i%20republish%20a%20single%20post%20immediately%3F\"><h3>Can I republish a single post immediately?<\/h3><\/dt>\n<dd><p>Yes. On published items, use the <strong>Republish now<\/strong> button in the Auto republish sidebar box. It is hidden if the item is set to Force OFF.<\/p><\/dd>\n<dt id=\"does%20it%20change%20categories%20or%20tags%3F\"><h3>Does it change categories or tags?<\/h3><\/dt>\n<dd><p>No. Only <strong>posts\/pages\/products\/CPTs<\/strong> get new dates. Taxonomies are not edited by this plugin.<\/p><\/dd>\n<dt id=\"is%20this%20good%20for%20seo%3F\"><h3>Is this good for SEO?<\/h3><\/dt>\n<dd><p>Changing dates affects ordering and freshness signals. Use thoughtfully and monitor your SEO plugin\u2019s guidance.<\/p><\/dd>\n<dt id=\"how%20is%20%E2%80%9Cone%20year%E2%80%9D%20calculated%3F\"><h3>How is \u201cone year\u201d calculated?<\/h3><\/dt>\n<dd><p><strong>Yearly<\/strong> \u2248 365 days from the item\u2019s GMT publish time (fixed length, not a calendar rule).<\/p><\/dd>\n<dt id=\"can%20i%20keep%20one%20post%20on%20an%20old%20or%20back-dated%20publish%20time%3F\"><h3>Can I keep one post on an old or back-dated publish time?<\/h3><\/dt>\n<dd><p>Yes. In the editor, set <strong>Force OFF<\/strong> for that item. Auto republish never runs for it, so the date stays until you change it yourself.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Developer hooks: <code>wapr_republish_query_args<\/code>, <code>wapr_allow_republish_post<\/code>, <code>wapr_republish_post_date_data<\/code>.<\/li>\n<li>Post meta label clarified: Force ON applies when the item is due by publish date (not \u201calways\u201d).<\/li>\n<li>Plugin header Author set for release; readme <code>Contributors<\/code> aligned with WordPress.org profile. Stable tag bump.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Plugin directory slug and display name no longer use the \u201cWordPress\u201d \/ \u201cWP\u201d trademark prefix (WordPress.org requirement). Text domain is <code>marketing-mystery-content-republisher<\/code>. Main bootstrap file: <code>marketing-mystery-content-republisher.php<\/code>.<\/li>\n<li>Removed manual <code>load_plugin_textdomain<\/code> (WordPress.org loads translations automatically).<\/li>\n<li><code>DEVELOPMENT.md<\/code> moved to <code>docs\/<\/code> for a clean plugin root; uninstall uses <code>delete_post_meta_by_key<\/code> \/ <code>delete_metadata<\/code> instead of raw SQL.<\/li>\n<li>PHPCS: documented nonce exceptions for read-only admin <code>$_GET<\/code> flags; prefixed loop variables in admin views.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Security: stricter post meta save (skip revisions\/autosaves, allowed post types only); settings whitelist; sanitized admin query args; capability failures use <code>wp_die<\/code>; republish batch validates post types; <code>republish_single<\/code> re-checks status and handles <code>WP_Error<\/code>; success admin notice only when a valid post is editable; <code>register_setting<\/code> sets <code>show_in_rest<\/code> false.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fix: reschedule cron when \u201cwait after publish\u201d changes even if the scanner stays daily (e.g. monthly \u2192 quarterly); clear stale hooks reliably. Short note on Schedule explains scanner vs wait.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>Behavior change:<\/strong> Automatic republish is <strong>per post<\/strong> (page, product, etc.): an item is updated only when its <strong>publication date (GMT)<\/strong> is at least as old as your chosen spacing. The same spacing applies again after each bump (from the new publication date). WP-Cron runs a <strong>scanner<\/strong> (hourly \/ twice daily \/ daily) to find due items; Site Health will show that recurrence, not necessarily \u201cyearly\u201d when spacing is yearly.<\/li>\n<li>UI and readme updated to describe spacing vs. scanner checks.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Schedule: first run for Monthly \/ Quarterly \/ Half-yearly \/ Yearly is after one full interval (not ~1 minute), so \u201cNext scheduled run\u201d matches the chosen cadence.<\/li>\n<li>Cron sync runs after saving Schedule even when the options value is unchanged, and on load the scheduler fixes a mismatch between saved interval and the existing cron entry.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Republish always updates both published date and last modified time; removed the Advanced checkbox.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Remove taxonomy and term-level settings. Republish applies only to enabled <strong>post types<\/strong> (Posts, Pages, Products, CPTs) plus per-post overrides.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Taxonomies in Configure default to all unchecked; enable the ones you want for auto republish.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Taxonomies default to ON only for taxonomies used by the Posts type (e.g. Categories, Tags). Others (e.g. WooCommerce) default to OFF until enabled.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Configure \u2192 Taxonomies: per-taxonomy checkboxes instead of long lists of terms.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: saving Schedule with intervals such as Hourly now stores the selected interval reliably.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Add \u201cRepublish now\u201d button on published posts (sidebar) for immediate date update.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Bumps publish dates on a per-item timer you set (from each item\u2019s publish time, GMT)\u2014no duplicate posts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296986","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=296986"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dewan-shahedur-rahman"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296986"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296986"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296986"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296986"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296986"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}