This plugin hasn’t been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Mend Sticky Posts

Description

  • Sticky posts are ordered the same way as non-sticky posts.
  • Sticky posts do not reappear on subsequent pages.
  • The first page of home will contain exactly the requested number of posts, rather than the requested number of posts plus the number of sticky posts.
  • Allows more than one page of sticky posts.

Simply injects the sticky post IDs into the actual mySQL order by clause,
causing posts to be ordered by sticky status then by what ever order is
specified, usually post_date DESC, and not to repeat on subsequent pages.
I can’t actually figure out why it isn’t done like this by WP, perhaps
earlier versions of mySQL don’t support this. WP’s default sticky ordering
craziness is turned off by returning an empty array for the next call to
get_option(‘sticky_posts’) which happens in WP_Query->get_posts().

There is currently a ticket awaiting review on the WordPress trac system to roll this functionality into the WordPress core: https://core.trac.wordpress.org/ticket/21986

Installation

  1. Upload mend-sticky-posts.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. That’s it!

Contributors & Developers

“Mend Sticky Posts” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1

  • Functionally closer to core code.
  • Now only run on “home” queries.
  • Only run if ignore_sticky_posts isn’t passed to WP_Query.
  • Bugfix: Doesn’t add comma when order by clause is already empty.