我想知道如何根据用户当前在我的Wordpress网站上的页面来自定义搜索结果。
我正在为包含多个版本的系统构建支持/帮助中心风格的网站,我希望搜索结果基于用户正在查看的“版本”。
这里有一些更多的背景,我有:
system.com/version1
system.com/version2
如果用户在/ version1中的页面上使用搜索表单,我希望结果只是/ version1中的页面。如果用户在/ version2中的页面上使用搜索表单,我希望结果来自/ version2
这是可能的,如果是这样,最简单的实现方法是什么?
谢谢,
答案 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' );