Как создать и настроить пользовательский поиск на сайте в Wordpress?
Здравствуйте! Я новичок в WordPress и мне нужна помощь с созданием и настройкой пользовательского поиска на моем сайте.
У меня есть основной поиск на сайте, который работает корректно. Но мне необходимо добавить второй поиск, который будет искать только в определенных категориях или на определенных страницах.
Вот пример кода, который я использую для основного поиска:
<form role="search" method="get" class="search-form" action="">
<label>
<input type="search" class="search-field" placeholder="Search…" value="" name="s" title="Search for:" />
</label>
<input type="submit" class="search-submit" value="Search" />
</form>
Мне нужно создать новую форму поиска, которая будет использоваться только на определенных страницах и в определенных категориях, например, только на странице блога или только в категории "Новости". Как я могу это сделать?
Буду благодарна за любую помощь!
Ответы:
Для создания пользовательского поиска на определенных страницах и в определенных категориях вам понадобятся некоторые изменения в коде, который вы уже используете для основного поиска. Вот пример кода, который поможет вам достичь желаемого результата:
<form role="search" method="get" class="search-form" action="">
<label>
<input type="search" class="search-field" placeholder="Search…" value="" name="s" title="Search for:" />
</label>
<input type="hidden" name="post_type" value="post" /> // Здесь указываем тип поста, в данном случае "post" для поиска только в записях блога
<input type="submit" class="search-submit" value="Search" />
</form>
Данный код добавляет скрытое поле "post_type" со значением "post", что означает поиск только в записях блога. Вы можете изменить значение этого поля в соответствии с вашими нуждами. Например, если вы хотите искать только в страницах, то нужно указать "page" вместо "post".
Чтобы добавить поиск только в определенных категориях, вам нужно будет использовать функцию "pre_get_posts" в файле functions.php вашей темы. Вот пример кода, который позволит вам сделать это:
function custom_search_filter($query) {
if ($query->is_search) {
$category_id = get_cat_ID("Новости"); // Здесь указываем название категории, в которой вы хотите осуществлять поиск
$query->set('cat', $category_id);
}
return $query;
}
add_filter('pre_get_posts', 'custom_search_filter');
В этом примере мы используем функцию get_cat_ID, чтобы получить ID категории "Новости". Затем мы используем функцию set, чтобы назначить этот ID в качестве значения параметра "cat" для запроса. Вы можете изменить значение "Новости" на название нужной вам категории.
Надеюсь, это поможет вам создать и настроить пользовательский поиск на вашем сайте! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.
Удачи!