我有一个页面,上面显示了我所有的自定义帖子类型。我现在需要在现有的基础上添加另一个:
$args = array(
\'post_type\' => \'bkroadkill\',
\'post_status\' => \'publish, future\',
\'posts_per_page\' => \'15\'
);
if ( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && isset($_POST[\'filterform\']) && wp_verify_nonce($_POST[\'filterform\'],\'filterform\') )
{
if (isset($_POST[\'own\']) && !empty($_POST[\'own\'])){
$args[\'author\'] = get_current_user_id();
}
if (isset($_POST[\'comments\']) && !empty($_POST[\'comments\'])){
$args[\'orderby\'] = \'comment_count\' ;
}
}
query_posts( $args );
这很好用。我现在要做的是添加这些过滤器
通过从中选择一个或多个类别进行筛选wp_dropdown_categories
“我的自定义分类法”的“按元值筛选”(Filter by meta value),该值已设置为除类别简单复选框外的所有筛选器。我只是检查它们是否已设置,并且在设置时更改字符串。
我尝试其他2个筛选器失败:
if (isset($_POST[\'cat\']) && !empty($_POST[\'cat\'])){
$args[\'roadkill_category\'] = $_POST[\'cat\'];
}
因为我对wordpress很陌生,即使是这个简单的东西也让我困惑
EDIT:
我现在可以为我的元值创建筛选器:
if (isset($_POST[\'bestimmung\']) && !empty($_POST[\'bestimmung\'])){
$args[\'meta_query\'] = array(array(
\'key\' => \'bestimmung\',
\'value\' => \'nein\',
\'compare\' => \'IS\'
));
}
所以我只是缺少了自定义分类法的过滤器。
最合适的回答,由SO网友:1fixdotio 整理而成
要在您的案例中执行分类查询,代码如下所示:
if (isset($_POST[\'cat\']) && !empty($_POST[\'cat\'])){
$args[\'tax_query\'] = array(
array(
\'taxonomy\' => \'roadkill_category\',
\'field\' => \'id\', // or slug
\'terms\' => $_POST[\'cat\'],
\'operator\' => \'IN\'
)
);
}
如果您对税务查询有进一步的疑问,请参阅
Codex.