All we need is an easy explanation of the problem, so here it is.
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', );
How to solve :
I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.
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_compare with operator
!= will exclude posts with empty meta value.
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
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', );
Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂