搜索时未工作的子代_

时间:2013-10-23 作者:Pepozzo

我试图将搜索限制为父页面及其自己的子页面。

我更改了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)
但是,我仍然可以看到来自其他页面的搜索结果,而不仅仅是来自父页面(或其子页面)。

为什么?

谢谢

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

WP_Query 没有child_of 论点

你可能在找post_parentpost_parent__in, 看见Post & Page Parameters.

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。