Exclude sticky posts from main query

Sticky posts are intended to be on top. This function excludes them from the main query so you can add them with a new WP_Query above the main loop. Use this snippet to modify the query with pre_get_posts and forward our query arguments ignore_sticky_posts and post__not_in

/**
 * Snippet Name: Exclude sticky posts from main query
 * Snippet URL: https://www.wpcustoms.net/snippets/exclude-sticky-posts-from-main-query/
 */
  function wpc_exclude_sticky_posts( $query ) {

if ( $query->is_home() && $query->is_main_query() )
$query->set( 'ignore_sticky_posts', 1 );
$query->set( 'post__not_in', get_option( 'sticky_posts' ) );
}
add_action( 'pre_get_posts', 'wpc_exclude_sticky_posts' ); 

0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x