Вопрос или проблема
У меня есть веб-сайт с дочерней темой Astra.
Astra генерирует поисковую форму в моем заголовке. Форма генерируется 4 раза от Astra и с методом=”get”.
Я не использую эту форму, и в пользовательском заголовке нет ничего, что бы требовало ее создания…
Я не могу понять, как остановить генерацию astra_get_search_form в заголовке способом PHP.
Я смог удалить ее из HTML, используя jQuery:
/* УДАЛИТЬ форму get */
$(".ast-search-box.header-cover").remove();
Но я предпочел бы удалить её, используя PHP, непосредственно в источнике.
Заранее спасибо за помощь.
Ответ или решение
Чтобы отключить отображение формы поиска в заголовке темы Astra (в том числе детской темы), вам нужно воспользоваться хуками WordPress. Astra использует функцию astra_get_search_form()
для генерации этой формы. Вам следует использовать хук astra_header
или wp_head
, чтобы удалить эту функцию из заголовка.
Вот шаги, которые нужно выполнить:
-
Откройте файл
functions.php
вашей детской темы. -
Добавьте следующий код в конец файла:
function remove_astra_search_form() {
remove_action( 'astra_header', 'astra_get_search_form', 10 );
}
add_action( 'wp', 'remove_astra_search_form' );
Объяснение кода:
- Функция
remove_astra_search_form()
удаляет действие, связанное с выводом формы поиска, из хукаastra_header
. remove_action()
используется для удаления функции, которая была добавлена ранее.10
– это приоритет, который был указан при добавлении функцииastra_get_search_form()
. Обычно это значение по умолчанию, поэтому его нужно указать, чтобы правильно удалить функцию.- Данный код добавляется через хук
wp
, который гарантирует, что ваша функция выполнится на стадии загрузки страницы, когда все функции добавлены.
Таким образом, применяя этот код, вы отключаете генерацию формы поиска в заголовке темы Astra без использования JavaScript и изменения HTML-кода.