Корректный запрос к БД

Добрый день!  Просьба помочь в части корректировки запроса к функции 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')

 

По умолчанию Вопрос задан в 21.10.2017 в Ошибки.
Добавить комментарий
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’  🙂

    Гуру Отвечено в 23.10.2017.
    Добавить комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с политикой конфиденциальности и условиями предоставления услуг.