Plugin Directory

Stealth Publish

Prevent specified posts from being featured on the front page or in feeds, and from notifying external services of publication.

2.6 (2016-03-27)

Highlights: * This release adds the ability to set the stealth publish checkbox via the quick edit box, adds an icon next to the post date in the admin listing to denote a post has stealth update enabled, adds support for language packs, and has some minor behind-the-scenes changes.

Details: * New: Add ability to set the Stealth Publish? value in the Quick Edit form. * Add add_to_submitbox(), add_to_quick_edit(), admin_enqueue_scripts(). * Add option arg $checked to add_ui() and use its value as the default if not null. * New: Add hidden icon next to post's date column in posts table to indicate which posts have stealth publish enabled. * Change: Delete meta key on save if stealth publish is not enabled for post. * Change: Run esc_attr() on the field name before display for safety. * Change: Don't run esc_attr() on meta key name as it need not be so restrictive (and isn't for display). * Change: Add support for language packs: * Set textdomain using a string instead of a variable. * Don't load textdomain from file. * Remove 'Domain Path' from plugin header. * Remove .pot file and /lang subdirectory. * New: Add LICENSE file. * New: Add empty index.php to prevent files from being listed if web server has enabled directory listings. * Change: Add docblocks for class variables. * Change: Add docblock to example code. * Change: Note compatibility through WP 4.5+. * Change: Update copyright date (2016).

2.5.1 (2015-02-21)

  • Revert to using dirname(__FILE__); DIR is only supported in PHP 5.3+
  • Ensure only '1' or '' is saved as meta field value

2.5 (2015-02-17)

  • Revert to pre-2.4 approach, which didn't have conflicts with other plugins and edge cases. Should fix most reported issues.
  • Cache stealth published post IDs in a transient; delete transient on post updates
  • Disregard protocol in URL comparison
  • Add more unit tests
  • Use existing class static variable for meta name instead of hardcoding it
  • Remove memoization static var and its use
  • Reformat plugin header
  • Use DIR instead of dirname(__FILE__)
  • Change documentation links to wp.org to be https
  • Minor documentation spacing changes throughout
  • Note compatibility through WP 4.1+
  • Update copyright date (2015)
  • Add plugin icon
  • Regenerate .pot

2.4.1 (unreleased)

  • Delay hooking 'pre_get_posts' action to minimize conflicts with other plugins

2.4 (2014-01-23)

  • Exclude stealth posts from front page (when is_front_page() would be true)
  • Add should_exclude_stealth_posts() to encapsulate logic for determining if stealth posts should be excluded
  • Hook pre_get_posts and try to exclude stealth posts in the original query without using secondary query (when possible)
  • Stop hooking posts_where, unless necessary
  • Add reset() to reset memoized protected variables
  • Add unit tests
  • Minor documentation improvements
  • Minor code reformatting (spacing, bracing)
  • Note compatibility through WP 3.8+
  • Drop compatibility with version of WP older than 3.6
  • Update copyright date (2014)
  • Regenerate .pot
  • Change donate link
  • Update screenshots
  • Add banner


  • Deprecate 'stealth_publish_meta_key' filter in favor of 'c2c_stealth_publish_meta_key' (but keep it temporarily for backwards compatibility)
  • Deprecate 'stealth_publish_silent' filter in favor of 'c2c_stealth_publish_silent' (but keep it temporarily for backwards compatibility)
  • Don't allow a blank string from 'c2c_stealth_publish_meta_key' to override the default meta key name
  • Remove private static $textdomain and its use; include textdomain name as string in translation calls
  • Remove function load_textdomain()
  • Add check to prevent execution of code if file is directly accessed
  • Re-license as GPLv2 or later (from X11)
  • Add 'License' and 'License URI' header tags to readme.txt and plugin file
  • Minor improvements to inline and readme documentation
  • Regenerate .pot
  • Minor code reformatting
  • Remove ending PHP close tag
  • Note compatibility through WP 3.5+
  • Tweak installation instructions in readme.txt
  • Update copyright date (2013)
  • Move screenshots into repo's assets directory


  • Add version() to return plugin's version
  • Update readme with example and documentation for new filter
  • Note compatibility through WP 3.3+
  • Update screenshots for WP 3.3
  • Use DIRECTORY_SEPARATOR instead of hardcoded '/'
  • Create 'lang' subdirectory and move .pot file into it
  • Regenerate .pot
  • Add 'Domain Path' directive to top of main plugin file
  • Add link to plugin directory page to readme.txt
  • Update copyright date (2012)


  • Fix bug where using Quick Edit on post caused Stealth Publish status to be cleared
  • Add filter 'c2c_stealth_publish_default' to allow configuring checkbox to be checked by default
  • Note compatibility through WP 3.2+
  • Minor code formatting changes (spacing)
  • Fix plugin homepage and author links in description in readme.txt


  • Switch from object instantiation to direct class invocation
  • Explicitly declare all functions public static and class variables private static
  • Note compatibility through WP 3.1+
  • Update copyright date (2011)


  • Bugfix for auto-save losing value of stealth publish status


  • Bugfix for WP 2.9.2 compatibility


  • Encapsulate all code in new c2c_StealthPublish class
  • Now also silently publish posts that are stealth published (i.e. don't send out pingbacks, tracbacks, and pings to update services)
  • Add checkbox labeled "Stealth publish?" to Publish meta_box rather than requiring direct use of custom fields
  • Allow overriding of custom field used via 'stealth_publish_meta_key' filter (default value is '_stealth_publish')
  • Add filter 'stealth_publish_meta_key' to allow overriding custom field key name
  • Add filter 'stealth_publish_silent' to allow overriding silent publish feature
  • Add class of 'c2c-stealth-publish' to admin UI div containing checkbox
  • Change custom field used to be a hidden custom field by prepending '_' to the name
  • Accept second arg to stealth_publish_where()
  • Completely re-implemented find_stealth_published_post_ids()
  • Full support for localization
  • Store plugin instance in global variable, $c2c_stealth_publish, to allow for external manipulation
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Minor code reformatting (spacing)
  • Add PHPDoc documentation
  • Note compatibility with WP 3.0+
  • Drop compatibility with versions of WP older than 2.9
  • Add screenshots
  • Update copyright date
  • Add package info to top of plugin file
  • Add Changelog, Filters, and Upgrade Notice sections to readme.txt
  • Add .pot file
  • Add to plugin repository


  • Initial release

Requires: 3.6 or higher
Compatible up to: 4.5.4
Last Updated: 6 months ago
Active Installs: 2,000+


5 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

50,2,1 100,1,1