我已经在我的函数文件中设置了一个自定义搜索查询,该查询检查帖子中高级自定义字段的值。
我的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个小时,但似乎找不到解决方案。
我仍在学习,因此,如果您对已有的代码有任何评论,请多多关照。