#wordpress #search #closest #wpas #partial-matches
#wordpress #Поиск #ближайший #wpas #частичные совпадения
Вопрос:
Я работаю над каталогом, который я создал в WordPress. Каталог работает как пользовательский тип записи под названием «агенты» и имеет собственную таксономию под названием «agent_location». У каждого агента есть несколько терминов «agent_location», добавленных в их список. Каждый термин agent_location связан только с одним «агентом». Каждый agent_location является началом почтового индекса Великобритании. Например, «AB1 1» или «AB11 3» и т.д.
Я использую расширенный поиск WPAS WordPress (http://wpadvancedsearch.com /) для создания форм поиска. Я бы хотел, чтобы конечный пользователь мог ввести весь свой почтовый индекс, например AB1 1AA, и ему был представлен пост агента, в котором указан термин «AB1 1», а не пост агента, в котором указан «AB11 3». По сути, поиск должен игнорировать последние 2 цифры любого введенного поиска. В настоящее время созданная мной форма выглядит следующим образом:
function agents_search_form() {
$args = array();
$args['wp_query'] = array('post_type' => 'agents',
'posts_per_page' => -1);
$args['fields'][] = array('type' => 'search',
'title' => 'Search',
'placeholder' => 'Enter search terms...',
'pre_html' => '<div class="hiddenField searchRow"><div class="searchWrap">',
'post_html' => '</div>');
$args['fields'][] = array( 'type' => 'submit',
'class' => 'button',
'value' => 'Search' ,
'pre_html' => '<div class="searchBTNWrap">',
'post_html' => '</div></div>');
$args['fields'][] = array('type' => 'taxonomy',
'taxonomy' => 'agent-location',
'format' => 'text');
register_wpas_form('agents-form', $args);
}
add_action('init', 'agents_search_form');
Когда вы используете форму, она работает идеально, при условии, что вы не указываете последние 2 цифры своего почтового индекса. Если вы введете весь свой почтовый индекс, результаты поиска не будут найдены.
Я хотел бы получить помощь в создании формы поиска, которая позволяет пользователям вводить весь свой почтовый индекс в поиск и все равно получать результат.
Я открыт для идеи обходных путей. Пожалуйста, имейте в виду, что:
- Почтовые индексы, которые публикует каждый агент, распределены по всей Великобритании. Нет центрального местоположения для работы, поэтому поиск по карте «radius» не будет работать.
- Я рад перенести таксономию в post непосредственно в качестве пользовательского поля, если это поможет
- Веб-сайт уже запущен, поэтому я не хочу воссоздавать все заново, но я рад кодировать новые решения или использовать плагины, если они дают желаемые результаты. В настоящее время веб-сайт использует Gravity forms, WPA, Beaver Builder и ACF pro.
- Большая часть посетителей веб-сайта слепы или частично зрячие, поэтому решения должны быть «удобными для чтения с экрана»
Заранее спасибо
Комментарии:
1. Я бы сделал это с помощью AJAX: когда пользователь вводит свой почтовый индекс, вы можете либо обновить список, либо отобразить предложения по почтовому индексу в выпадающем списке.
2. Спасибо, но я не думаю, что это сработает. У меня действительно было нечто подобное. У него был выпадающий список с полем поиска, список уменьшался по мере ввода пользователем. Но поскольку многие посетители слепы, им было трудно и они часто вводили весь свой почтовый индекс, прежде чем проверять остальную часть документа с помощью программы чтения с экрана.
Ответ №1:
В итоге я использовал плагин Relevanssi — https://wordpress.org/plugins/relevanssi и объединение его с WPadvancedsearch на самом деле хорошо работает вместе и позволяет мне делать все, что мне было нужно.