Фильтр WP_Query для сообщений, имеющих определенную метазначение

Как фильтровать WP_Query для сообщений, имеющих определенную метазначение, без использования запроса пользовательского выбора?

У меня есть настраиваемый posttype с мета-ключом: «открытые» и мета-значения: «да» или «нет».

Я хотел бы показывать сообщения только с meta_value = yes, для meta_key = "open".

function filter_where($where = '') { $open = "yes"; //$where .= " AND post_date > '" . date('Ym-d', strtotime('-2 days')) . "'"; return $where; } add_filter('posts_where', 'filter_where'); 

Я не уверен в вашей формулировке, если вы не пробовали ее с аргументом запроса или это не сработало?

 $the_query = new WP_Query(array( 'meta_key' => 'open', 'meta_value' => 'yes' )); 

Пользовательские параметры поля в Codex.

  $querystr = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'custom-key' AND wposts.post_type = 'page' ORDER BY wpostmeta.meta_value DESC ";