Wordpress: результаты поиска по пустому типу сообщения перенаправляются вместо результатов поиска
Я использую плагин Search & Filter для фильтрации двух пользовательских таксономий, прикрепленных к пользовательскому типу записи (тема и местоположение). Некоторые из моих пользователей используют поля "Все темы" и "Все местоположения" в надежде, что они будут сброшены на исходную страницу архива при отправке. Конечно, это отправляет Wordpress на страницу результатов поиска, потому что это приводит к пустому поисковому запросу. Это выглядит примерно так:
Вот что делает мою ситуацию уникальной среди других людей, которые просто хотят получить сообщение, в котором говорится: "ничего не найдено". Вместо того, чтобы переходить к результатам поиска, я бы предпочел перенаправить своих пользователей обратно на страницу архива того типа сообщений, в котором они находились, когда выполняли этот запрос. Что-то похожее на это:
http://www.example.com/resources/
Но есть еще один слой к проблеме. У меня есть два пользовательских типа сообщений с двумя пользовательскими таксономиями. Ресурсы и тренинги. Если они на тренингах, они должны быть перенаправлены в архив тренингов по пустому поисковому запросу. Если они находятся на ресурсах, они должны быть перенаправлены на ресурсы по пустому поисковому запросу.
Это возможно?
1 ответ
Для создания этого пользовательского перенаправления необходимо построить условную логику в хуке INIT. Который проверяет, с какой страницы приходит пользователь, и перенаправляет его на соответствующую страницу.
add_action('init','custom_redirector');
function custom_redirector(){
if (isset($_GET["s"]) and $_GET["s"]=='' and !empty($_SERVER['HTTP_REFERER'])){
if (strpos($_SERVER['HTTP_REFERER'],'resources')!==false){
header("location: ".home_url('/resources')); exit;
}
elseif (strpos($_SERVER['HTTP_REFERER'],'trainings')!==false){
header("location: ".home_url('/trainings')); exit;
}
}
}
Конечно, коду может потребоваться некоторая настройка, особенно в части "strpos($_SERVER['HTTP_REFERER'],'resources')". Вы лучше знаете, какие узнаваемые слагы содержат ваши пользовательские страницы сообщений.