你的问题不清楚,但我做出以下假设:
用户正在提交$_POST[\'search_option_money\'];
是否要返回所有mycredit
发布位置$_POST[\'search_option_money\'];
介于offer_money_start
和offer_money_end
自定义字段问题是你误用了key
和value
元查询的参数。这个key
是自定义字段的名称,并且value
是您正在搜索的值。
此外BETWEEN
元查询是指您希望根据介于两个指定值之间的元键的值查找帖子,而不是根据介于两个单独元键之间的值查找帖子。
如果要查找给定值介于两个单独元键之间的帖子,需要两个单独的元查询:
$query_args = [
\'post_type\' => \'mycredit\',
\'posts_per_page\' => -1
\'orderby\' => \'rand\',
];
if ( isset( $_POST[\'search_option_money\'] ) ) {
$money_form = $_POST[\'search_option_money\'];
$query_args[\'meta_query\'] = [
\'relation\' => \'AND\',
[
\'key\' => \'offer_money_start\',
\'value\' => $money_form,
\'compare\' => \'>=\',
\'type\' => \'DECIMAL\',
],
[
\'key\' => \'offer_money_end\',
\'value\' => $money_form,
\'compare\' => \'<=\',
\'type\' => \'DECIMAL\',
],
]
}
$my_query = new WP_Query( $query_args );
这将查询表单中提交值大于
offer_money_start
自定义字段,但小于
offer_money_end
自定义字段。
我还对代码进行了格式化,以便只有在$_POST[\'search_option_money\']
存在。您当前的代码将分配meta_query
如果未定义变量,则返回到未定义变量。
最后,POST请求不适合获取数据,这就是搜索或筛选所做的。您的表单应使用GET
方法,以及$_POST
应该是$_GET
.