【问题标题】:Wordpress Search Form with selection In Post, Page or Forum (bbpress)在帖子、页面或论坛中选择的 Wordpress 搜索表单 (bbpress)
【发布时间】:2018-03-18 17:06:29
【问题描述】:

如何创建 Wordpress 搜索表单,可选择我们要搜索的位置?在帖子、页面或论坛 (bbpress) 中搜索。有没有什么简单的解决方案可以在没有在主题文件夹中创建其他文件的情况下做到这一点?

更新

我使用此代码,它可以工作,但我不知道如何添加 bbPress。

现在搜索结果的 url 是这样的:?s=mysearch&post_type=page

默认 bbPress 结果网址:forums/search/mysearch/

<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
    <label>
        <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span>
        <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
        <input type="radio" name="post_type" value="post" id="posts" checked /><label for="posts">Posts</label>
        <input type="radio" name="post_type" value="page" id="pages" /><label for="pages">Pages</label>
    </label>
    <input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" />
</form>

也许使用脚本可以在选择“论坛”选项后更改搜索 URL?

【问题讨论】:

    标签: wordpress bbpress search-form


    【解决方案1】:

    您可以使用函数get_search_form() 输出搜索表单,然后使用过滤器pre_get_posts 修改其搜索内容。

    add_filter( 'pre_get_posts', 'posts_to_search' );
    
    function posts_to_search( $query ) {
    
        if ( $query->is_search ) {
            $query->set( 'post_type', array( 'post', 'products' ) );
        }
    
        return $query;
    
    }
    

    【讨论】:

    • 感谢您的回答。不幸的是,我认为这不是我想要的。我已经更新了问题,请看一下
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2012-12-11
    相关资源
    最近更新 更多