Wordpress игнорирует пустые параметры запроса - PullRequest
1 голос
/ 06 августа 2020

Допустим, URL-адрес: https://example.com/?min_price=100&max_price

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' );

с использованием remove_query_arg для удаления пустых запрос и перенаправление. Проблема в том, что я не думаю, что мой подход достаточно хорош, я даже не могу поставить exit; в конце функции wp_redirect();, иначе это не сработает.

1 Ответ

1 голос
/ 06 августа 2020

Разрешена ли клиентская сторона?

$(function(){
    $("form").submit(function(){
        $(this).find(":input").filter(function(){ return !this.value; }).attr("disabled", "disabled");
        return true; // continue submission
    });
});

это предотвратит сериализацию и отправку значения вашей формы на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...