WordPress почему не меняется виджет поиска после того как я его изменил в хуке get_search_form?
Вот код:
add_filter( 'get_search_form', function ( $form ) {
$form = '
<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
<label class="screen-reader-text" for="s">Запрос для поиска:</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Найти" />
</form>';
$form = '
<div class="widget widget_search">
<form id="searchform" method="get" role="search" action="' . home_url('/blog/') .'">
<input class="text-search" type="text" onfocus="" placeholder="Search here..." value="' . get_search_query() . '">
<input type="submit" class="submit-search" value="">
</form>
</div>';
return $form; } );
Но в сайдбаре ничего не меняется, если я просто вызову этот виджет в коде через get_search_form()
То тогда уже появляется кастомизированная форма поиска, но мне нужно чтобы форма была такой в сайдбаре
Ответы (1 шт):
Автор решения: Darth KYL
→ Ссылка
после того как в WordPress добавили редактор блоков в виджеты вы больше не можете изменить виджет поиска через фильтр get_search_form, потому что для нового редактора виджетов используются виджеты блоков.
Вы можете изменить форму поиска использую фильтры для создания блоков
add_filter( 'pre_render_block', function( $pre_render_block, $args ) {
if ( $args['blockName'] !== 'core/search' ) {
return;
}
$form = '<div class="widget widget_search">
<form id="searchform" method="get" role="search" action="' . home_url('/blog/') .'">
<input class="text-search" type="text" onfocus="" placeholder="Search here..." value="' . get_search_query() . '">
<input type="submit" class="submit-search" value="">
</form>
</div>';
return $form;
}, 10, 2 );