按税额(下拉列表)和元价值过滤帖子

时间:2014-01-30 作者:4ndro1d

我有一个页面,上面显示了我所有的自定义帖子类型。我现在需要在现有的基础上添加另一个:

$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\'
                                        ));
    }
所以我只是缺少了自定义分类法的过滤器。

2 个回复
最合适的回答,由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.

SO网友:socki03

看起来您已经解决了第一个问题,第二个问题也是如此,如前所述here.

$args[\'tax_query\'] = array( array(
        \'taxonomy\'  => \'custom-taxonomy\',
        \'field\'     => \'id\',
        \'terms\'     => $term_id,
        \'operator\'  => \'IN\'
    )
);

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢