在WordPress中name
对于搜索字段,必须为s
. WordPress会自动对任何请求执行搜索,其中s
存在。
出于某种原因,您的主题有一个单独的搜索字段,名为m
显示在手机上。除非添加自定义代码来处理此问题,否则这不会起任何作用。但这不是必要的。
此外,两个字段都位于一个<form>
元素,这意味着每当提交表单时s
和m
已提交字段。这意味着在移动设备上,将基于桌面搜索字段执行搜索。
你需要两个分开<form>
元素,一个用于桌面,一个用于移动,每个元素都应该有自己的s
要素:
<div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-4">
<div class="row justify-content-end">
<form class="row justify-content-end pc suche">
<div class="col-lg-11 col-xl-11">
<table>
<tr>
<td>
<input class="form-control" placeholder="Suche" type="text" value="<?php echo esc_attr($s); ?>" name="s" />
</td>
<td>
<input class="btn btn-outline-search" type="submit" id="search_submit" value="Suchen"/>
</td>
</tr>
</table>
</div>
</form>
<form class="justify-content-end mobile" method="get" action="<?php echo esc_url( home_url() ); ?>">
<div class="col-auto">
<table>
<tr>
<td>
<input class="form-control" placeholder="Suche" type="text" value="<?php echo esc_attr($s); ?>" name="s" />
</td>
<td>
<input class="btn btn-outline-search" type="submit" id="search_submit" value="Suche"/>
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
还要注意我所做的其他更改:
我删除了id
来自表单和输入,因为它们是重复的,这在HTML中是不允许的。如果需要,可以添加任何ID,只要它们是唯一的我替换了$_SERVER[\'PHP_SELF\'];
具有home_url()
, 这是在WordPress中获取主页URL的正确方法代码esc_html()
第二个参数设置为1
. 这没有任何作用,所以我把它删除了我替换了esc_html()
具有esc_attr()
, 因为它更适合转义属性