Stellen Sie anhand der Seiten-ID sicher, ob es untergeordnete Elemente gibt

Ich muss Unterseiten auflisten, die ID des Elternteils gegeben. Ich habe es wie folgt versucht:

if ($children = get_pages(array('child_of' => $post->ID)) && !empty($children)) { //Do stuff here } 

Aber das ist sowieso falsch.

Ich habe auch versucht get_page_children($post->ID, array) , aber ich glaube, ich habe nicht wirklich verstanden, wie diese function funktioniert.

Also, ist es überhaupt möglich, die Kinder einer Seite zu bekommen? Vielen Dank.

Solutions Collecting From Web of "Stellen Sie anhand der Seiten-ID sicher, ob es untergeordnete Elemente gibt"

Das Beispiel aus dem WP-Codex für get_page_children erfüllt mit einer Seite mit dem Titel “Portfolio” das, wonach Sie suchen:

 $my_wp_query = new WP_Query(); $all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1')); // Get the page as an Object $portfolio = get_page_by_title('Portfolio'); // Filter through all pages and find Portfolio's children $portfolio_children = get_page_children( $portfolio->ID, $all_wp_pages ); 

Der erste Teil initialisiert eine neue WP_Query, dann fragt er alle Seiten ab und gibt sie als Objekte zurück, die auf die Variable $all_wp_pages sind.

get_page_children benötigt zwei Argumente: die ID der übergeordneten Seite und die Liste der $all_wp_pages in denen nach den $all_wp_pages dieser Seite $all_wp_pages werden soll (die Variable $all_wp_pages oben).

Damit Ihr Beispiel funktioniert, benötigen Sie die Liste der von der Abfrage erstellten Objekte ( $all_wp_pages ), da get_page_children die get_page_children nicht get_page_children , sondern get_page_children dieser Liste überprüft .

Also, get_page_children($post->ID, $all_wp_pages)

Vollständig:

 $page_id = $post->ID; $my_wp_query = new WP_Query(); $all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1')); $the_pages_children = get_page_children( $page_id, $all_wp_pages );