How to use a conditional statement in a post loop but not count towards the “posts_per_page” if false

The simplest solution would be to query all posts using a -1 in place of the 12 in your ‘posts_per_page’ argument of your query. Then use a counter that ticks up if all of the above conditions equal true. $args = array( ‘post_type’ => $post_slug, ‘posts_per_page’ => -1, ‘paged’ => 1, ‘post_status’ => ‘publish’, ); … Read more

Load posts via AJAX without draft status

admin-ajax.php is treated as part of the admin, so protected statuses will be included. To solve this just explicitly define post_status as publish to only get published posts: $args = array( ‘post_type’ => ‘project’, ‘post_status’ => ‘publish’ ); Or, better yet, consider using the REST API for AJAX requests, instead of the aging admin-ajax.php approach. … Read more

Get related posts matching most of the provided tags using WP_Query

There is no direct way of getting posts matching most of these tags using WP_Query. The usual documented methods: If you want posts matching any of these tags, you may use: $args = array( ‘post_type’ => ‘post’, ‘tag_slug__in’ => array( ‘poetry’, ‘motivational’, ‘attitude’, ‘rules’, ‘lines’, ‘sigma’, ‘inspirations’ ) ); $query = new WP_Query( $args ); … Read more

Why ignore_sticky_posts argument is in sticky post query?

We all know that ignore_sticky_posts is used to exclude sticky post from your custom query. – No, this assumption is wrong. What ignore_sticky_posts means: Even though in natural English, ignore_sticky_posts sounds like WordPress should ignore all sticky posts from the query, in reality that is not what WordPress does. Instead, you should read ‘ignore_sticky_posts’ => … Read more