在自己的页面模板中一次显示多个页面

时间:2014-10-08 11:17:55

标签: php wordpress-theming wordpress

我正在建立一个单页网站。因此,首页上会同时显示多个页面。我按照他们在主菜单中的位置排序。一切都很好,但要以更动态的方式实现这一目标。我想在他们自己的页面模板中输出每个页面。

这是可能的,我将如何实现这一目标?

到目前为止我的方法 - 的前page.php文件

<?php
if (($locations = get_nav_menu_locations()) && $locations['primary']) {
    $menu       = wp_get_nav_menu_object($locations['primary']);
    $menu_items = wp_get_nav_menu_items($menu->term_id);
    $pageID     = array();
    foreach ($menu_items as $item) {
        if ($item->object == 'page')
        $pageID[] = $item->object_id;
    }
    query_posts(array(
    'post_type' => 'page',
    'post__in' => $pageID,
    'posts_per_page' => count($pageID),
    'orderby' => 'post__in'
    ));
}
while (have_posts()):   the_post();
//LOOP - INSERT SOLUTION HERE
//Show all pages in their own or default page template (page.php, page-portfolio.php ...)
endwhile;
?>

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

<?php
while (have_posts()):   the_post();
    $page_template = get_page_template_slug( get_the_ID() );
    get_template_part( basename($page_template, ".php"));
endwhile;

?>

请记住,您必须从这些模板中删除循环外的所有内容,因为您在调用front-page.php allready中提供了这些内容。并且确保front-page.php从不在循环内部调用,因为这将导致无限循环。