Я делаю шаблон WordPress самостоятельно. В верхней части заголовка находится фиксированный ввод для поиска, поэтому пользователь может искать любые сообщения с определенным тегом в любое время.
Проблема в том, что когда я набираю ключевое слово тега на входе, оно всегда показывает все сообщения, не фильтруя их вообще.
Но когда я ищу ключевое слово, у которого нет зарегистрированного тега, возвращается страница с ошибкой 404.php.
Любопытно, что при наличии ключевого слова тега ссылка выглядит так:
/ WordPress / тег / имя-оф-тег /
И когда нет тега с этим ключевым словом, оно выглядит как:
/ WordPress /? Тег = имя-оф-тег /
Мой код формы прямо ниже:
<form method="get" action="<?php echo esc_url( home_url( '/' ) );?>">
<input id="s" type="text" name="tag" onfocus="if (this.value=='Buscar...') this.value = '';" onblur="if (this.value=='') this.value = 'Buscar...'" name="search" class="form-search" value="Buscar..."/>
</form>
Вы добавили name
атрибут дважды. Со значением tag
а также search
, Удалить все из них и добавить name="s"
Это из CODEX
<form role="search" method="get" id="searchform" class="searchform" action="<?php echo esc_url(home_url('/')); ?>">
<div>
<label class="screen-reader-text" for="s"><?php _x('Search for:', 'label'); ?></label>
<input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" />
<input type="submit" id="searchsubmit" value="<?php echo esc_attr_x('Search', 'submit button'); ?>" />
</div>
</form>
Других решений пока нет …