搜索后保持选中复选框|自定义Wordpress搜索查询

时间:2018-10-25 09:19:46

标签: php html wordpress

我已经在我的函数文件中设置了一个自定义搜索查询,该查询检查帖子中高级自定义字段的值。

我的html:

<input type="checkbox" id="news" name="post_type" value="post" <?php if (isset($_GET["post_type"]) && $_GET["post_type"] == "post") echo "checked"; ?> ><label for="news">News</label>

这是我拥有的复选框。我有7个具有不同值,ID和标签名称的复选框

function custom_search_query($query) {

    if( !is_admin() && $query->is_main_query() && $query->is_search() ) {
        if ( ( isset( $_GET["active"] ) && $_GET["active"] == "active" ) &&
            ( isset( $_GET["not_active"] ) && $_GET["not_active"] == "not active" ) ) return;

        $today = current_time('Ymd');

        if( isset($_GET["active"]) && $_GET["active"] == "active" ) {
            $query->set('meta_query', array(
                "relation"      => "AND",
                array(
                    "key"       => "project_details_start_date",
                    "compare"   => "<=",
                    "value"     => $today,
                ),
                array(
                    "key"       => "project_details_end_date",
                    "compare"   => ">=",
                    "value"     => $today,
                ),
            ));
        }

        if( isset($_GET["not_active"]) && $_GET["not_active"] == "not active" ) {
            $query->set('meta_query', array(
                "relation"      => "OR",
                array(
                    "key"       => "project_details_start_date",
                    "compare"   => ">",
                    "value"     => $today,
                ),
                array(
                    "key"       => "project_details_end_date",
                    "compare"   => "<",
                    "value"     => $today,
                ),
            ));
        }
    }
}

这是我的功能文件中的自定义搜索查询。

正如您在html复选框中看到的那样,我有一个php函数,可以在搜索后保持选中状态。

我面临的问题是,当我搜索它时,它只会检测到选中的最后一个复选框,而不是其他复选框。

有没有简单的解决方案可以使它正常工作? 我已经搜索了大约4个小时,但似乎找不到解决方案。

我仍在学习,因此,如果您对已有的代码有任何评论,请多多关照。

0 个答案:

没有答案