Basically, when the meta_key field is "location", I want to add an additional where clause to make a comparison based on that location.
I tried this with Case and IF statements, but cant get it to work, any ideas I'm wrong in?
$query = " SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_type, wp_postmeta.meta_key, wp_postmeta.meta_value, wp_postmeta.post_id, wp_term_relationships.object_id, wp_term_relationships.term_taxonomy_id, wp_term_taxonomy.term_id, wp_terms.term_id, wp_terms.name FROM wp_posts JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id JOIN wp_terms ON wp_term_taxonomy.term_id = wp_terms.term_id WHERE post_type = 'listing' AND wp_postmeta.meta_key IN ('locations', 'email', 'phone-number')"; if(isset($location)) { $query .= " IF wp_postmeta.meta_key='location' THEN AND wp_postmeta.meta_value LIKE '".mysql_real_escape_string($location)."' END IF"; }
Thank you and let me know if I do not explain anything clearly enough!
source share