Die effizienteste Art, Kinderposts zu zeigen?

In der Parent Post Vorlage (zB single-country.php für ‘land’ CPT) möchte ich die Permalinks für seine Children Posts anzeigen. Sagen wir in diesem Fall, dass alle CPTs von Kindern auf derselben Ebene sind, also wären die CPTs “Staat”, “Provinz”, “Präfektur” und “Abteilung” (die Kinder von “Land” sind) alle “Brüder”, also nein Enkelkinder.

Jetzt weiß ich, dass ich tun kann:

echo '
'; $args = array( 'post_type' => array( 'state', 'province' ), 'posts_per_page' => -1, 'post_status' => 'publish', 'post_parent' => $post ); $child = get_posts( $args ); if ( $child ) { echo '

ID ) . '" alt="States">States

'; echo '

ID ) . '" alt="Provinces">Provinces

'; } echo '
';

… und ich erhalte die Permalinks für die ersten Posts für die Kinder CPTs ‘Staat’ und ‘Provinz’. Das ist in Ordnung, aber das fügt der database 3 weitere Abfragen hinzu.

Dann weiß ich, dass ich auch tun kann:

 echo '
'; $parent_id = wp_get_post_parent_id( $post->ID ); $my_wp_query = new WP_Query(); $all_wp_pages = $my_wp_query->query( array( 'post_type' => array( 'state', 'province' ), 'posts_per_page'=> -1, 'post_status' => 'publish', 'post_parent' => $post ) ); $child = get_page_children( $parent_id, $args ); if( $child ) { echo '

ID ) . '" alt="State">State

'; echo '

ID ) . '" alt="Province">Province

'; } wp_reset_postdata(); echo '
';

… aber jetzt fügen wir der database 4 Abfragen hinzu.

Also, es gäbe eine dritte Möglichkeit:

 echo '
'; $parent_id = wp_get_post_parent_id( $post->ID ); $args = array( 'post_type' => array( 'state', 'province' ), 'posts_per_page' => -1, 'post_status' =>'publish', 'post_parent' => $post ); $child = get_page_children( $parent_id, $args ); if( $child ) { echo '

ID ) . '" alt="State">State

'; echo '

ID ) . '" alt="Province">Province

'; } echo '
';

Diese dritte Option verwendet get_page_children (wie auch die zweite), fügt jedoch keine einzelne databaseabfrage hinzu. Das Problem ist natürlich, dass es nicht so funktioniert, wie ich es geschrieben habe. Aber es funktioniert irgendwie: Die Permalinks sind für den Elternpost, aber ich brauche die Permalinks für die Kinderposts .

Ich habe verschiedene Varianten ausprobiert und in Google und SO, S.Exchange usw. gesucht, aber nichts. Idealerweise würde ich etwas wie get_permalink ( $child[x]->ID ) in der dritten Option verwenden (sobald ich die Child-Posts erscheinen lassen kann), da ich weiß, dass ich für meinen speziellen Fall immer nur einen haben werde Beitrag jedes Kindes CPT.

Außerdem verstehe ich nicht genau, warum das nur mit $parent_id = wp_get_post_parent_id( $post->ID ); zu funktionieren scheint $parent_id = wp_get_post_parent_id( $post->ID ); Ich weiß, es wird nicht funktionieren mit $parent_id = get_the_id(); weil es in die Abfrage gehen muss, aber ich verstehe nicht, warum etwas wie $parent_id = $post->ID; funktioniert auch nicht.

Es wäre toll, wenn mir jemand mit der dritten Option helfen könnte, damit mein Code korrekt und effizient ist.

Danke im Voraus.

Solutions Collecting From Web of "Die effizienteste Art, Kinderposts zu zeigen?"