我有三个选择框允许过滤自定义帖子列表,可以选择任何或全部选项,然后单击“过滤器”按钮,然后重新加载页面并将过滤的变量添加到该URL作为查询字符串。这适用于这两个自定义分类完全没有问题,我有:如何在过滤后使用自定义字段值修改Wordpress WP_Query?
$categories = array('company-sector', 'company-location');
foreach ($categories as $category) {
if (isset($_GET[$category]) && !empty($_GET[$category])) {
$query['tax_query'][] = array(
'taxonomy' => $category,
'field' => 'slug',
'terms' => $_GET[$category]
);
}
}
然而,在使用第三过滤器(与ACF创建一个自定义字段)相同的逻辑,帖子列表不会改变:
if (isset($_GET['company-status']) && !empty($_GET['company-status'])) {
$query['meta_query'][] = array(
'key' => 'company_status',
'value' => $_GET['company-status'],
);
}
此元查询工作就好了,如果我手动添加它到初始WP_Query像这样:
$query = array(
'post_type' => 'company-post',
'posts_per_page' => $posts_per_page,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'company_status',
'value' => 'acquired'
)
)
);
但是,试图将其添加到初始查询得到可变FR后om查询字符串似乎不工作,我在这里做错了什么?
//编辑
即使这是工作:
$query = array(
'post_type' => 'company-post',
'posts_per_page' => $posts_per_page,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'company_status',
'value' => $_GET['company-status']
)
)
);
所以它必须是事做我如何追加meta_query初始WP_Query ...
如果您的var_dump($ _ GET ['company-status'])是否获得了预期的结果? – Stender
还没有尝试var_dump(),但是echo $ _GET ['company-status'];返回我期待看到的。 – JFK1980
var_dump()返回:string(7)“current”。 ('当前'或'已获得'是目前的两种选择,在后台显示为ACF单选按钮。) – JFK1980