WordPress: Как я могу отобразить несколько страниц на одной странице? - PullRequest
6 голосов
/ 21 августа 2009

Допустим, у меня есть три разные страницы: page1, page2 и page3.

Я хочу, чтобы page1 и page2 отображались на моей статической главной странице. Нужно ли ограничивать цикл только извлечением страницы page1 и page2 или мне нужно запустить цикл, проверить name = "page1" или что-то в этом роде, а затем распечатать? Спасибо! -Joe

Ответы [ 2 ]

7 голосов
/ 21 августа 2009

Я бы пропустил цикл и просто использовал get_page($id), как описано здесь:

http://codex.wordpress.org/Function_Reference/get_page

Все, что вам нужно знать - это идентификаторы ваших страниц, и вы можете извлекать их по одному в любое время.

1 голос
/ 05 ноября 2013

Вот пример того, как вы могли это сделать. Этот код будет работать, если у вас есть все страницы, которые вы хотите отображать под одним родителем. В этом случае я помещал страницы под домашнюю страницу (p.post_parent = 2).

if ($post->post_type == 'page') {                    

    $pages = $wpdb->get_results("SELECT p.ID, p.post_name, p.post_title, p.post_parent, pm.meta_value FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS pm ON pm.post_id=p.ID AND pm.meta_key='wp_menu_nav' LEFT JOIN $wpdb->posts AS P ON P.ID=p.post_parent WHERE p.post_parent = 2 AND p.post_type='page' AND p.post_status='publish' ORDER BY p.menu_order ASC"); 

    if ($wpdb->num_rows > 0) {                          

        foreach($pages as $page) {

            //echo $page->ID . "<br>";
            $args = array( 'numberposts' => 1, 'post_type'=> 'page', 'include' => $page->ID, 'post_status' => 'published' );

            $myposts = get_posts($args);

            foreach($myposts as $mypost) {
                setup_postdata($mypost);
                echo the_content();
            }

        }

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...