Read post meta values, only if posts are public
Yes, do an INNER JOIN, something like this should work: $values = $wpdb->get_col($wpdb->prepare(” SELECT meta_value FROM $wpdb->postmeta INNER JOIN $wpdb->posts {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id WHERE meta_key= %s AND {$wpdb->posts}.post_status=”publish”” ,$metakey )); I changed $wpdb->get_results() to $wpdb->get_col() since it looks like you are just selecting a single column of data as an array. I also added $wpdb->prepare() … Read more