après avoir consulté la question de ce site, j'ai trouvé la solution de contournement pour ceci:
function SearchFilter($query) {
if ($query->is_search) {
global $post;
$query->set( 'post_parent', 21 );
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
Lorsque je le fais, sa seule recherche est l’enfant du parent 21 et non l’enfant du parent 21.
En outre, query_vars accepte uniquement la valeur unique pour post_parent.
toute solution pour cela est très appréciée.
merci
Vous pouvez probablement faire quelque chose comme ça. C'est probablement moins efficace, mais devrait trouver tous les descendants d'une page donnée plutôt que de simplement diriger les enfants.
function find_descendants($post_id) {
$descendant_ids = array();
$pages = get_pages("child_of=$post_id");
foreach ($pages as $page) { array_Push($descendant_ids, $page->ID); }
return $descendant_ids;
}
function SearchFilter($query) {
if ($query->is_search) {
$query->set ( 'post__in', find_descendants(21) );
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');