Фильтр wp_query для постов, имеющих определенную мета-ценность
-
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
";
Не связан с wordpress.stackexchange