Фильтр wp_query для постов, имеющих определенную мета-ценность

wordpress.stackexchange https://wordpress.stackexchange.com/questions/5713

  •  16-10-2019
  •  | 
  •  

Вопрос

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

У меня есть пользовательский Posttype с Meta-ключом: «Открыть» и мета-значения: «Да» или «Нет».

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

function filter_where($where = '') {    

    $open = "yes";

    //$where .= " AND post_date > '" . date('Y-m-d', strtotime('-2 days')) . "'";
    return $where;
}
add_filter('posts_where', 'filter_where');
Это было полезно?

Решение

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

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

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

Другие советы

 $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
    ";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top