Eltern mit untergeordneten Seiten von WP_Query ausschließen

Wie kann ich nur die Seiten abfragen, die keine Unterseiten haben ?

Z.B:

  • Parent-Seite 1
    • Kind Seite 1
    • Kind Seite 2
  • Parent-Seite 2
  • Parent-Seite 3
    • Kind Seite 1
    • Kind Seite 2
  • Elternseite 4

Ich würde gerne zeigen

  • Parent-Seite 2
  • Elternseite 4

$newQuery = new WP_Query( array ( 'posts_per_page' => -1, 'post_type' => 'page', // Solution? ) ); 

Vielen Dank

Solutions Collecting From Web of "Eltern mit untergeordneten Seiten von WP_Query ausschließen"

Nun, Ihre Situation ist sehr ungewöhnlich, ich habe versucht, einige Standard-Wege, aber mit einem SQL-basierten functionen schien die richtige Wahl für mich-

 function the_dramatist_pages_not_own_child() { global $wpdb; $sql = "SELECT * FROM {$wpdb->posts} AS p WHERE p.post_type LIKE 'page' AND p.post_parent LIKE 0 AND p.id NOT IN (SELECT post_parent FROM wp_posts AS p WHERE p.post_type = 'page' AND p.post_parent != '0' GROUP BY post_parent)"; return $wpdb->get_results($sql); } 

Wenn Sie the_dramatist_pages_not_own_child() aufrufen, the_dramatist_pages_not_own_child() es alle Posts als einzelnes Objekt zurück, die keine the_dramatist_pages_not_own_child() Seiten haben.

Ich hoffe, das hilft.

Die Antwort des_dramatist gibt Ihnen nur Top-Level-Seiten, die keine Kinder haben, was dem in Ihrer Beschreibung angegebenen Beispiel entspricht.

Wenn Sie jedoch ALLE Blattseiten erhalten möchten, verwenden Sie Folgendes:

 SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND ID NOT in ( SELECT ID FROM $wpdb->posts WHERE post_type = 'page' AND ID in ( SELECT post_parent FROM $wpdb->posts WHERE post_type = 'page' ) ) AND post_status = 'publish'