query_posts and only show results if a custom field is not empty

How do I query_posts and only show results if a custom field is not empty or has a value.

I want to put in a URL in a custom field and only show these pages if there is a URL?

current code but I can't figure out the rest:

$args = array( 'posts_per_page' = '10', 
    'post_type' = 'programmes', 
    'orderby' = 'meta_value_num', 'meta_key' = 'popularityfig',
    'order'  = 'DESC',
    );

Topic custom-field query-posts Wordpress

Category Web


The accepted answer was not working for me with a text field in Advanced Custom Fields. It kept pulling all posts once they were saved after the text field was added to the Custom Fields. I had to do a similar solution to others:

$args = array(  
    'meta_key' => 'your_acf_field',
    'meta_value' => array(''),
    'meta_compare' => 'NOT IN',
);

It's not clear if the answer above actually worked for you @erichmond, but it definitely did not for me. Found a solution though. See: How can I show posts only if meta_value is not empty


Try this code:

$args = array(
'posts_per_page' => '10',
'post_type' => 'programmes',
'meta_key' => 'popularityfig',
'meta_value' => '',
'meta_compare' => '!=',
'order' => 'DESC'
);

There're 2 arguments you might want to note in the code: meta_value and meta_compare. Using meta_compare with operator != will exclude posts with empty meta value.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.