带有多站点的 WordPress 搜索表单

问题描述 投票:0回答:3

我创建了一个表单来搜索博客中的帖子,但我的搜索返回来自其他博客(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>
php wordpress
3个回答
0
投票

您可以通过在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');

0
投票

我知道这个老问题,但迄今为止最简单的方法是将操作更改为:

<?php echo esc_url( home_url( '/' ) ); ?>

那么您网络中的所有站点都将是正确的。


-1
投票
 <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>
© www.soinside.com 2019 - 2024. All rights reserved.