2014-10-08 2 views
1

단일 페이지 웹 사이트를 만들고 있습니다. 따라서 한 페이지에 여러 페이지가 동시에 표시됩니다. 기본 메뉴에서의 위치에 따라 주문합니다. 모든 것은 괜찮지 만보다 역동적 인 방식으로이를 달성하십시오. 나는 자신의 페이지 템플릿으로 모든 페이지를 출력하고 싶다.한 번에 여러 페이지를 자신의 페이지 템플릿에 표시하십시오.

이것이 가능하며 어떻게해야합니까?

지금까지 내 접근 - 전면 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

이 작업을 시도 할 수 있습니다 :

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

?> 

을 당신이 그에서 루프 이외의 모든 물건을 제거 할 필요가 있음을 기억하십시오 템플리트는 allready 호출 프론트 page.php에서 제공합니다. 그리고 front-page.php가 루프 내부에서 호출되지 않았는지 확인하십시오. 이렇게하면 무한 루프가 발생하기 때문입니다.

+0

이것은 매력처럼 작동합니다. - 고마워요. – retober

관련 문제