基于当前页面的Wordpress搜索结果

时间:2017-06-20 17:10:07

标签: php wordpress

我想知道如何根据用户当前在我的Wordpress网站上的页面来自定义搜索结果。

我正在为包含多个版本的系统构建支持/帮助中心风格的网站,我希望搜索结果基于用户正在查看的“版本”。

这里有一些更多的背景,我有:

system.com/version1

system.com/version2

如果用户在/ version1中的页面上使用搜索表单,我希望结果只是/ version1中的页面。如果用户在/ version2中的页面上使用搜索表单,我希望结果来自/ version2

这是可能的,如果是这样,最简单的实现方法是什么?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以尝试使用pre_get_posts操作挂钩。这将允许您根据您所在的页面修改query对象。 Documentation here

我还没有能够测试这个,但你可能会从这样的事情开始:

function my_children_query( $query ) {
    global $post; // not sure if this is needed

    // do nothing if we aren't on a search page
    if( !$query->is_search) {
        return;
    }

    // get only children of current page
    if( is_page( 'something1' ) || is_page( 'something2' ) ) {
        $query->set( 'post_parent', $post->ID );
    }
}
add_action( 'pre_get_posts', 'my_children_query' );