在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(), 因为它更适合转义属性