В моем проекте WordPress возникла проблема.
У меня много категорий. У категорий есть имя дочерней категории Новый продукт.
В настоящее время я использовал pre_get_posts
, чтобы получить список сообщений на Новый продукт страниц. Если на страницах категории появится сообщение с post_date
> 2018/1/15 .
Я хочу добавить пользовательский флажок keep_product
в продукт, который сохранит продукт на странице Новый продукт , если post_date
<2018/1/15 </strong> при его проверке.
Так что я думаю, что условия должны быть post_date > 2018/1/15** OR **keep_product = 1
Я пытаюсь создать запрос, но, похоже, WP_Query
применяется только И условие для date_query
и meta_query
.
function pre_get_posts_function($q){
//Code in here
$query->set('date_query', array(
array(
'after' => '2018/1/15'
);
));
$query->set('meta_query', array(
array(
'key' => 'keep_product',
'value' => '1'
)
));
}
Я также пытаюсь создать действие posts_where
, но оно игнорирует условие категории. Товар, который отмечен keep_after_60_days
, будет отображаться в Новый товар страниц.
function pre_get_posts_function($q){
//Code in here
$query->set('date_query', array(
array(
'after' => '2018/1/15'
);
));
add_filter( 'posts_where', 'postmeta_new_releases',10,1);
}
function postmeta_new_releases( $where = '' ) {
global $wpdb;
$where .= " OR ($wpdb->postmeta.meta_key = 'keep_product' AND $wpdb->postmeta.meta_value = 1)";
return $where;
}
Может ли кто-нибудь мне помочь. Я злюсь на это через несколько дней.
Спасибо !!