Hallo Shadow,
du bist wie immer äußerst hilfsbereit. Vielen Dank dafür :)
Mir war bewusst, dass post_parent einen einzigen Integer verlangt, aber irgendwie stürzten mich alle gegoogelten Lösungsvorschläge gestern abend in eine tiefe Sinneskrise und da dachte ich mir: Meld dich mal einfach an und frag. :-D An post__in oder post_parent__in hatte ich auch schon gedacht, funktionierte aber nicht so wie ich das wollte oder wird von meiner WP Version nicht unterstützt. (Ich soll 3.5 verwenden :-?).
Wie dem auch sei, diskutieren wir das nicht weiter.
Heute frisch, munter und durch deine Antwort neu motiviert habe ich eine Lösung "geschrieben". Sie ist möglicherweise nicht ganz das, was du mir mitteilen wolltest und sicher viel zu umständlich, aber sie liefert das, was ich haben will.
Optimierungs- oder bessere Vorschläge sowie Warnmeldung wegen fatalen Fehlern nehme ich gerne entgegen, ansonsten poste ich hier mal den Code für andere Unwissende, die sich vielleicht ebenfalls die oben genannte Frage stellen bzw. warum auch immer danach suchen.
In der function.php meines Child-themes:
function SearchFilter($query) {
if ($query->is_search) {
// Meine Parentseite
$help_page = get_page_by_title( 'help' );
$help_page_id = $help_page->ID;
// ALLE Childs und Enkel [...] meiner Parentseite
$pages = get_pages('child_of='.$help_page_id);
// Hier kommen alle Seiten rein, zwischen denen später gesucht wird
//--> Die Enkel
$helpposts = array();
foreach($pages as $child) {
// Array aller übergeordneten Parents/ Vorfahren des jeweiligen $child
$ceck_parent = get_post_ancestors( $child );
// Wenn das gespeicherte Parent an Array-Stelle [0]
// NICHT die ID meiner Parentseite ist...
if ($ceck_parent[0] != $help_page_id){
// ... wird die ID des jeweiligen $child hinten in das
//Array $helpposts angefügt
array_push($helpposts, $child->ID);
}
}
//$query->set('post_type', 'page');
$query->set( 'post__in', $helpposts );
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
Alles anzeigen
Viele Grüße, Lord Helmiii