Корректный запрос к БД
Добрый день! Просьба помочь в части корректировки запроса к функции query_posts:
query_posts( array( 'post_type' => APP_POST_TYPE, 'author' => $curauth->ID, 'paged' => $paged, 'meta_query' => array(array('meta_key' => 'cp_ad_sold', 'meta_value' => 'no', 'meta_compare' => '='))) );
работает корректно к тем записям у которых есть ‘meta_key’ => ‘cp_ad_sold’.
Как скорректировать запрос, чтобы выбирались И записи у которых нет поля ‘meta_key’ => ‘cp_ad_sold’? SQL запрос работает корректно:
SELECT * FROM `bgjer_postmeta` WHERE (`meta_key`='cp_ad_sold' AND `meta_value` = 'no') OR (`meta_key`<> 'cp_ad_sold')
Добавить комментарий
1 Ответ (-ов)
'meta_query' => array(array('meta_key' => 'cp_ad_sold', 'meta_value' => 'no', 'meta_compare' => '='))
Данная строчка служит дополнительным фильтром для функции query_posts, поэтому если вы просто ее удалите из запроса, то будут выбраны записи у которых ‘meta_key’ => ‘cp_ad_sold’ и у которых не ‘meta_key’ => ‘cp_ad_sold’ 🙂