查询帖子|将多个表单输入合并到查询参数中以生成一个筛选结果

时间:2019-03-06 作者:Jason Is My Name

我正在尝试,但到目前为止,未能将两个表单输入合并到一个post查询中。

我已经将这些表单作为两个单独的表单进行了测试,两个表单都按预期返回结果,现在我正在尝试使它们位于同一个表单中,并且只有一个提交按钮。

这是我的代码:

/* Filter Portfolio Post Results */
function portfoliofilter_filter_function(){
    $args = array(
        \'orderby\' => \'publish_date\', // we will sort posts by date
        \'order\' => \'DESC\' // ASC or DESC
    );

    // for taxonomies / categories
    if( ( isset( $_POST[\'sectorfilter\'] ) ) || ( isset( $_POST[\'categoryfilter\'] ) ) )
        $args[\'tax_query\'] = array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'id\',
                \'terms\' => array( $_POST[\'sectorfilter\'], $_POST[\'categoryfilter\'] )
            )
        );

    $query = new WP_Query( $args );

    if( $query->have_posts() ) :
        while( $query->have_posts() ): $query->the_post();
简单介绍一下我要实现的目标:

使用isset($\\u POST[\'sectorfilter\')和isset($\\u POST[\'categoryfilter\')的值,这将是类别ID。

在查询中,如果选择了一个选项,则只会缩小一个选项的范围,如果选择了另一个选项,则只会缩小该选项的范围,但如果组合,则结果会进一步缩小为“与”关系,其中结果将分为两类。

1 个回复
SO网友:Jason Is My Name

我需要将类别数组彼此分离,因为这是应用“AND”的地方:

/* Filter Portfolio Post Results */
function portfoliofilter_filter_function(){
    $args = array(
        \'orderby\' => \'publish_date\', // we will sort posts by date
        \'order\' => \'DESC\' // ASC or DESC
    );

    // for taxonomies / categories
    if( ( isset( $_POST[\'sectorfilter\'] ) ) || ( isset( $_POST[\'categoryfilter\'] ) ) )
        $args[\'tax_query\'] = array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'id\',
                \'terms\' => $_POST[\'sectorfilter\']
            ),
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'id\',
                \'terms\' => $_POST[\'categoryfilter\']
            )
        );

    $query = new WP_Query( $args );

    if( $query->have_posts() ) :
        while( $query->have_posts() ): $query->the_post();

相关推荐

将本地jQuery替换为外部托管时出现WordPress错误

我试图从CDN加载jquery,而不是用wordpress本机加载。在我的功能中。php我已经完成了如下操作,确保它只发生在前端:function replace_jquery() { if (!is_admin()) { wp_deregister_script(\'jquery\'); wp_register_script(\'jquery2\', \'https://ajax.googleapis.com/ajax/libs/jquer