假设URL是:https://example.com/?min_price=100&最大价格
max_price
已设置但为空。因此,产品页面将返回为空。我想忽略所有空参数,这样它就不会包含在查询中。有钩子、动作或过滤器吗?
目前,我的解决方案是使用template_redirect
和remove_query_arg
:
function your_redirection(){
if(isset($_GET['min_price']) || isset($_GET['max_price'])){
$array = array();
if(isset($_GET['min_price']) && (empty($_GET['min_price']) || !is_numeric($_GET['min_price']) || (is_numeric($_GET['min_price']) && $_GET['min_price'] < 1))){
$array[] = "min_price";
}
if(isset($_GET['max_price']) && (empty($_GET['max_price']) || !is_numeric($_GET['max_price']) || (is_numeric($_GET['max_price']) && $_GET['max_price'] < 1))){
$array[] = "max_price";
}
wp_redirect(remove_query_arg($array, false));
}
}
add_action( 'template_redirect', 'your_redirection' );
使用CCD_ 4来移除空查询并重定向。问题是我认为我的方法不够好,我甚至不能在wp_redirect();
函数的末尾放一个exit;
,否则,它就不起作用。
是否允许客户端?
$(function(){
$("form").submit(function(){
$(this).find(":input").filter(function(){ return !this.value; }).attr("disabled", "disabled");
return true; // continue submission
});
});
它将阻止表单的值被序列化并发送到服务器。