wake-up-neo.net

Holen Sie sich die ID des Kindes von der Kinderschnecke, während Sie die Eltern-ID kennen

Ich habe eine Hierarchie, von der ich Daten abrufen muss. Es ist das Kind (nach dem Namen der Schnecke), das ich bekommen muss, während ich bereits die Eltern kenne.

Highest Known Parent Page (slug : 'parent')
|_ Child 1 (slug : 'child-1')
   |_ Page 1 (slug : 'page-1')
   |_ Page 2 (slug : 'page-2')
|_ Child 2 (slug : 'child-2')
   |_ Page 1 (slug : 'page-1')
   |_ Page 2 (slug : 'page-2')
|_ Child 3 (slug : 'child-3')
   |_ Page 1 (slug : 'page-1')
   |_ Page 2 (slug : 'page-2')

Im Idealfall versuche ich, ein Ergebnis zu erzielen, das konsistent "Seite-2" zurückgibt, und ich arbeite bereits in einer Schleife, in der ich "Kind-1", "Kind-2", "Kind-3" usw. kenne Ich bin nur nicht sicher, wie ich die dritte Ebene abfragen soll. Irgendwelche Ideen?

Das überlege ich mir wahrscheinlich, da es wahrscheinlich eine einfache Möglichkeit gibt, eine Seiten-ID aus einem Slug zu erhalten, wenn Sie den Elternteil bereits kennen. Natürlich muss ich Eventualitäten skripten, falls "Seite-2" aus irgendeinem Grund nicht existiert, aber ich muss zuerst die richtigen Daten abrufen.

UPDATE:

Hier ist der Code, mit dem ich gerade arbeite. Ich kenne Models. Ich kenne Kinder von Modellen. Ich versuche, jedes einzelne Kind unter alle vorbildlichen Kinder zu bringen. Zum Beispiel eine Seite "Spezifikationen". Ich hoffe also, dass 5-6 verschiedene "Spezifikations" -Seiten zu mir zurückkehren ... damit ich sie (dynamisch) einfach verlinken kann.

<?php
// get models id
$models = get_page_by_path( 'models' );

// get children of models page
$args = array(
    'post_type'      => 'page',
    'posts_per_page' => -1,
    'post_parent'    => $models->ID,
    'order'          => 'ASC',
    'orderby'        => 'menu_order'
);
$children_posts = new WP_Query( $args );
?>
2
Will Ashworth

Sie sollten den Parameter pagename für WP_Query zusammen mit post_parent verwenden. Begrenzen Sie Ihre Anfrage mit posts_per_page auf einen Beitrag.

$parent_id = get_the_ID();
$args = array(
    'post_type'      => 'page'
    'pagename'       => 'page-2',
    'post_parent'    => $parent_id,
    'posts_per_page' => 1
);
$posts = get_posts( $args );
$child = isset( $posts[0] ) ? $posts[0] : false;
if( $child ){
    //Do Something
}

Theoretisch sollte dies Ihren gewünschten Beitrag per Slug unter Verwendung der übergeordneten ID rendern.

1
Brian Fegter
<?php
// get models id
$models = get_page_by_path( 'models' );

// get children of models page
$args = array(
    'post_type'      => 'page',
    'posts_per_page' => -1,
    'post_parent'    => $models->ID,
    'order'          => 'ASC',
    'orderby'        => 'menu_order'
);

$children_posts = new WP_Query( $args );
0
Arman Gharibi

Hast du dir schon get_page_children angesehen? Sie müssen die ID der untergeordneten Seite und die $ children_posts übergeben, damit alle untergeordneten Seiten davon zurückgegeben werden ...

was Sie brauchen, ist: child-1-> ID und ein Array mit child-1, child-2 und so weiter

0
alxndrbauer