Ignore sticky posts from the main query
We use the pre_get_posts filter to modify the main query and set it to ignore sticky posts. Keep in mind that they won’t show up anywhere. You manually need to run a custom query calling only sticky posts above the main loop if you want to show them at the top.
/** * Snippet Name: Ignore sticky posts from the main query * Snippet URL: https://wpcustoms.net/snippets/ignore-sticky-posts-main-query/ */ function wpc_ignore_sticky($query) { if (is_home() && $query->is_main_query()) $query->set('ignore_sticky_posts', true); $query->set('post__not_in', get_option('sticky_posts')); } add_action('pre_get_posts', 'wpc_ignore_sticky');