Ich habe mich gefragt, wie ich das Kind eines Kindes Seiten in WordPress auflisten kann.
Hier ist was ich eingerichtet habe.
Videos (Parent) -Music Videos(child) --Video 1 (Child of Child) --Video 2 (Child of Child) -Performances (Child) --Video 1 (Child Of Child) --Video 2 (Child Of Child)
Ich möchte alle “Kind des Kindes” der Elternseite “VIDEOS” auflisten.
Ich kenne diesen Code nur die “Kind” -Seiten, aber nicht das Kind von Kindern.
get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?> ID, 'thumbnail'); ?> <a href="https://wordpress.stackexchange.com/questions/236164/how-do-i-list-the-child-of-a-child-page/ID); ?>" rel="bookmark" title="post_title; ?>">post_title; ?>
Ich möchte dies tun, ohne etwas zu meiner functions.php hinzufügen zu müssen
Was muss ich hinzufügen, um dies zu ermöglichen? Ich habe fünf untergeordnete Seiten unter der Parent-Seite.
Zunächst einmal, warum Sie nach Posts nach Ihrer benutzerdefinierten Abfrage suchen? Wir haben dafür die WP_Query
class und die get_posts
function.
$child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT');
wurde
$pages = get_posts(array( 'post_type' => 'page', 'orderby' => 'menu_order' 'order' => 'ASC' 'posts_per_page' => -1, ));
Als Nächstes sollten get_page_children
function get_page_children
( get_page_children auf Codex ) verwenden, um eine Baumliste zu erstellen . get_page_children
fragt die database nicht jedes Mal ab, wenn wir eine Liste von Kindern get_page_children
möchten, sondern verwendet eine Liste aller Beiträge, die in der Variablen $pages
gespeichert sind.
< ?php foreach ($pages as $page): ?> < ?php if ($page->post_parent == 0): ?> - < ?php echo $page->post_title; ?> < ?php $children = get_page_children($page->ID, $pages); ?>
< ?php foreach ($children as $child): ?> < ?php if ($child->post_parent == $page->ID): ?> - < ?php echo $child->post_title; ?> < ?php $granchildren = get_page_children($child->ID, $pages); ?>
< ?php foreach ($granchildren as $grandchild): ?> - < ?php echo $grandchild->post_title; ?>
< ?php endforeach; ?>
< ?php endif; ?> < ?php endforeach; ?>
< ?php endif; ?> < ?php endforeach ?>
BEARBEITEN. Ich denke, dass dies jetzt zu Ihrer Erwartung passt:
< ?php $posts = get_posts(array('posts_per_page' => -1, 'post_type' => 'page')); ?> < ?php $children = get_page_children($post->ID, $posts); ?> < ?php foreach ($children as $child): ?> < ?php if ($child->post_parent == $post->ID): ?> < ?php echo $child->post_title; ?>
< ?php $grandchildren = get_page_children($child->ID, $posts); ?> < ?php foreach ($grandchildren as $grandchild): ?> - < ?php echo $grandchild->post_title; ?>
< ?php endforeach; ?>
< ?php endif; ?> < ?php endforeach; ?>