Как сделать такой поиск на wordpress?

Ссылка скопирована
1 ответ

Подскажите плагин поиска, где справа можно добавить в каких категориях искать?
вот что имею ввиду

Как сделать такой поиск на wordpress?

Дополнительно:

Поместите следующий код в файл searchform.php вашей темы. (Внешний вид > Редактор > Форма поиска — searchform.php) Если в вашей теме нет файла searchform.php, вы можете создать его:

<form id="searchform" method="get" action="<?php bloginfo('url'); ?>">     <input type="text" name="s" id="s" size="15" />     <?php wp_dropdown_categories('show_option_none=Select category'); ?>     <input type="submit" value="Search" /> </form>

<form id="searchform" method="get" action="<?php bloginfo('url'); ?>"> <input type="text" name="s" id="s" size="15" /> <?php wp_dropdown_categories('show_option_none=Select category'); ?> <input type="submit" value="Search" /> </form>

Затем поместите этот код в конец файла functions.php. (Внешний вид > Редактор > Функции темы — functions.php):

add_action('pre_get_posts', 'search_by_cat'); function search_by_cat() {     global $wp_query;     if (is_search()) {         $cat = intval($_GET['cat']);         $cat = ($cat > 0) ? $cat : '';         $wp_query->query_vars['cat'] = $cat;     } }

add_action('pre_get_posts', 'search_by_cat'); function search_by_cat() { global $wp_query; if (is_search()) { $cat = intval($_GET['cat']); $cat = ($cat > 0) ? $cat : ''; $wp_query->query_vars['cat'] = $cat; } }

  • Спаисбо!

Ответы:

Плагин Ajax Search Pro

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Frontend-редакция Ответ

Если нужен «такой поиск» на WordPress, сначала определите, что именно он должен искать: записи, товары WooCommerce, кастомные поля, таксономии, SKU, авторов или всё сразу. Стандартный поиск WordPress ищет в заголовке и контенте, но не во всех произвольных полях.

Минимальная форма поиска:

<form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>">
    <input type="search" name="s" value="<?php echo esc_attr(get_search_query()); ?>" placeholder="Поиск">
    <button type="submit">Найти</button>
</form>

<form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>"> <input type="search" name="s" value="<?php echo esc_attr(get_search_query()); ?>" placeholder="Поиск"> <button type="submit">Найти</button> </form>

Если поиск должен работать только по товарам:

<input type="hidden" name="post_type" value="product">

<input type="hidden" name="post_type" value="product">

Для красивого live-search с подсказками лучше не писать всё с нуля, а использовать Relevanssi, SearchWP, Ajax Search Lite/Pro или ElasticPress для больших сайтов. Они умеют искать по полям, таксономиям и дают более релевантные результаты.

Если делать AJAX самостоятельно, серверный обработчик должен принимать строку, очищать её и возвращать ограниченное число результатов:

$query = new WP_Query([
    's' => sanitize_text_field($_GET['q'] ?? ''),
    'post_type' => ['post', 'page'],
    'posts_per_page' => 8,
]);

$query = new WP_Query([ 's' => sanitize_text_field($_GET['q'] ?? ''), 'post_type' => ['post', 'page'], 'posts_per_page' => 8, ]);

Не делайте поиск без лимита и без debounce на фронте. На большом сайте это быстро создаст нагрузку на базу.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно