在我的 WordPress 项目中,我遇到了一些问题。
我有很多类别。这些类别有一个子类别名称新产品。
目前,我已经习惯在新产品页面pre_get_posts
中获取帖子列表。如果有> 2018/1/15的帖子将进入类别页面。post_date
我想在产品中添加一个自定义复选框,如果选中时< 2018/1/15keep_product
,它将将产品保留在新产品页面中。post_date
所以我认为条件应该是post_date > 2018/1/15** OR **keep_product = 1
我尝试创建一个查询,但似乎WP_Query
只对and应用AND条件。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;
}
任何人都可以帮助我。几天后我会生气。
谢谢!!