WP_Query post_parent-Parameter gibt immer untergeordnete Elemente der aktuellen Seite zurück

Nun, der Titel gibt alles weg …

Hier ist der Code:

$args = array( "post_type" => "page", "post_parent" => $cat, // runs through a loop of 5, 128, 130 "posts_per_page" => -1 ); print_r($args); $postsLang = new WP_Query($args); while ($postsLang->have_posts()) { $postsLang->the_post(); $postID = get_the_ID(); array_push($result, $postID); } wp_reset_query(); print_r($result); 

Hier gibt die print_r aus:

 Array ( [post_type] => page [post_parent] => 5 [posts_per_page] => -1 ) Array ( [0] => 30 [1] => 23 ) Array ( [post_type] => page [post_parent] => 128 [posts_per_page] => -1 ) Array ( [0] => 30 [1] => 23 ) Array ( [post_type] => page [post_parent] => 130 [posts_per_page] => -1 ) Array ( [0] => 30 [1] => 23 ) 

Also gehen die $ -Args korrekt in die Abfrage, aber das Ergebnis ist immer das gleiche: die IDs der Kinder der aktuellen Seite (ID = 5).

Ich kann sogar post_parent static auf 128 setzen und trotzdem die Kinder der aktuellen Seite bekommen.

Wenn ich den post_parent-Parameter entferne, bekomme ich alle Seiten (wie ich sollte).

Ich habe das gleiche Problem mit get_posts, was mich denken lässt, dass die Syntax richtig ist, aber dass ich das Verhalten des Parameters post_parent missverstehen könnte ?!

Irgendwelche Gedanken sehr geschätzt !!

Solutions Collecting From Web of "WP_Query post_parent-Parameter gibt immer untergeordnete Elemente der aktuellen Seite zurück"

post_parent gibt nur die post_parent Seiten der Seite zurück, deren ID als Wert angegeben ist.

post_parent (int) – Verwenden Sie die Seiten-ID, um nur untergeordnete Seiten zurückzugeben. Auf 0 setzen, um nur Einträge der obersten Ebene zurückzugeben

Um nur eine bestimmte Seite zu erhalten, verwenden Sie lieber page_id oder pagename oder post__in (in Verbindung mit post_type=page .

Ich würde vorschlagen, dass Sie lieber get_pages die speziell dazu da ist, Seiten abzufragen.

Nur eine Anmerkung hier, wp_reset_query() wird in Verbindung mit query_posts . Sie sollten wp_reset_postdata() mit WP_Query

Hier die Lösung aus den Kommentaren:

Polylang erstellt einen neuen benutzerdefinierten Parameter “lang”. Dieser Parameter scheint standardmäßig “” zu sein, was Posts mit einem beliebigen Wert zurückgeben soll. Stattdessen werden nur Beiträge mit dem Sprachwert der aktuellen Seite zurückgegeben (daher nur Kinder mit der aktuellen Seiten-ID = 5). Zur Behebung durchforsche ich nun manuell die verfügbaren Werte für “lang”, um Seiten mit allen Werten für “lang” zu erhalten. Ich werde mit dem Plugin-Autor überprüfen, ob dies ein Fehler oder durch meine Umgebung verursacht wird.