enguerranws
enguerranws

Reputation: 8233

WP-Query : check if the post content is empty

I'm trying to check if my post has content, in the loop. Currently, i added a condition in the loop :

if ( $post->post_content ) 

and putted argument in the

wp query ('posts_per_page' => 8).

I thought it worked, but actually, WP query go find last 8 posts, and check the content of those 8 lasts. So it renders 2 or 3 posts.

The thing I want is a way to show last 8 posts that has content.

See what I mean ?

I really appreciate some help :)

Best regards.

Upvotes: 4

Views: 4607

Answers (1)

Ohgodwhy
Ohgodwhy

Reputation: 50797

This isn't possible with a standard WP query, and you'll have to leverage the use of posts_where before the WP_Query is called.

function filter_where($where = ''){
    return $where .= "AND trim(coalesce(post_content, '')) <>''";
}

In the above, we're simply only selecting posts where the column post_content isn't empty.

Then add the filter.

add_filter('posts_where', 'filter_where');

Now perform the query.

$query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 8));

And then when you're done, remove the filter from the query so it doesn't interfere.

remove_filter('posts_where', 'filter_where');

Upvotes: 7

Related Questions