我试图将搜索限制为父页面及其自己的子页面。
我更改了searchform。php添加此代码:
<input type="hidden" value="<?php
global $post;
$ancestors2 = $post->ancestors;
if ($ancestors2) {
echo end($ancestors2);
} else {
echo $post->ID;
} ?>" name="childof" />
此外,我还为我的主题函数添加了一个函数。php:
function SearchFilter($query) {
if (is_search() && !empty($_GET[\'s\']) && !empty($_GET[\'childof\'])) {
$parent_page_id = intval($_GET[\'childof\']);
$query->set(\'child_of\', $parent_page_id );
}
return $query;
}
add_filter(\'pre_get_posts\',\'SearchFilter\');
我用
var_dump($query)
它返回:
["child_of"]=>
int(104)
但是,我仍然可以看到来自其他页面的搜索结果,而不仅仅是来自父页面(或其子页面)。
为什么?
谢谢