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?

Read More

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',
    );

Related posts

Leave a Reply

3 comments

  1. 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.

  2. 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',
    );