修改earch form.php和earch.php以拥有两种搜索

时间:2016-09-19 作者:Pim

我想在searchform中有两个搜索输入。带有两个不同提交按钮的php。一个用于搜索帖子,另一个用于搜索类别。根据填写的输入,搜索。php应该显示post结果或类别结果。

我该怎么办?我需要两种不同的表格吗?如何自定义搜索。php是否只显示相关结果?我是否在搜索表单中使用隐藏字段?我可以很好地显示结果,但如何$s 比如说,$s2 进入搜索。php?我有点不知道从哪里开始。

1 个回复
最合适的回答,由SO网友:Pim 整理而成

对于任何试图实现类似目标的人,我是这样解决的:

在searchform中。php,复制表单,如下所示:

<form method="get" id="searchform" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
    <input type="text" name="s" id="s" placeholder="<?php esc_attr_e( \'Search by Post\' ); ?>" />
    <input type="hidden" name="search-type" value="posts" />
    <button type="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( \'Search\' ); ?>">
    <img src="<?php bloginfo(\'template_url\'); ?>/images/searchic.png" />
    </button>
</form>
<form method="get" id="searchform2" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
    <input type="text" name="s" id="s2" placeholder="<?php esc_attr_e( \'Search by Category\' ); ?>" />
    <input type="hidden" name="search-type" value="categories" />
    <button type="submit" name="submit" id="searchsubmit2" value="<?php esc_attr_e( \'Search\' ); ?>">
    <img src="<?php bloginfo(\'template_url\'); ?>/images/searchic.png" />
    </button>
</form>
然后在搜索中。php,如下get_header(), 以下内容:

if(isset($_GET[\'search-type\'])) {
    $searchtype = $_GET[\'search-type\'];
    if($searchtype == \'posts\') {
        get_template_part( \'search\', \'posts\' );
    } elseif($searchtype == \'categories\') {
        get_template_part( \'search\', \'categories\' );
    }
}
然后创建两个文件,“search posts.php”和“search categories.php”,您可以在其中定义各自搜索结果的循环。

瞧!

相关推荐

edit URL of search result

我有一个主题为Salent的wordpress网站,我在标题中有默认搜索,搜索结果是http://www.example.com/?s=colagenwhile“;“colagen”;是在搜索中键入它的键,但结果页看起来不太好,这就是为什么我希望搜索结果url是这样的http://www.exemple.com/?s=colagen&post_type=product因为使用此url,woocomerce产品看起来更好