Wordpress搜索表单与多站点


Wordpress search form with Multisite

我已经创建了一个表单来搜索帖子在我的博客,但我的搜索返回帖子从其他博客(domain.com/)而不是(domain.com/myblog),是的是一个多站点wordpress。我尝试了所有方法,遵循我的代码:

<form class="navbar-form navbar-right searchform" role="search" method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <div class="form-group">
        <input name="s" id="s" type="text" class="form-control" placeholder="Search Programs" value="<?php echo get_search_query(); ?>">
    </div>
    <a id="searchsubmit" type="submit" class="btn"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></a>
</form>

您可以通过在functions.php

中添加以下代码来解决此问题
function custom_pre_get_posts($query)
{
    $parent_categories = ('myblog');
    // you can search by slug or insert the category id directly. your choice
    $cat_term_id = get_category_by_slug($parent_categories)->term_id;
    if ($query->is_main_query() && !is_admin() && is_search()) 
        $query->set('cat', $cat_term_id);
    }
}
add_action('pre_get_posts', 'custom_pre_get_posts');
 <form class="ms-global-search_form" method="get" action="<?php echo get_bloginfo('url').'/myblog/'; ?>">
            <input id="s" class="field" name="mssearch" type="text" placeholder="Search across network sites:" size="16" tabindex="1" />
            <input type="submit" id="searchsubmit" class="button submit" value="<?php _e( 'Search', 'ms-global-search' )?>" tabindex="2" />
        </form>