2009-08-20 5 views

답변

7

나는 루프를 생략하고 여기에 설명 된대로 단순히 get_page($id)을 사용 :

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

당신이 알아야 할 모든 페이지의 ID의, 당신은 한 번에 하나씩 뽑을 수 너가 원하는 곳이라면 어디든.

+3

각 페이지의 Wordpress에서 지정한 템플릿을 적용하고 싶습니까? – Prusprus

+0

이 접근법은 이제 더 이상 사용되지 않음 –

+0

이 질문에 대한 답을 찾고 있는데,'get_page'는 이제 사용되지 않습니다. 누구든지 대안을 권할 수 있습니까? – mattnewbie

1

다음은 사용자가 수행 할 수있는 방법의 예입니다. 한 페이지 아래에 표시하려는 모든 페이지가있는 경우이 코드가 작동합니다. 이 경우 홈 페이지 (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(); 
      } 

     } 

    } 

} 
+1

일반적으로 원시 SQL 쿼리는 사용하지 않는 것이 좋습니다. WordPress에는 임의의 수의 페이지에 액세스 할 수있는 많은 방법이 있습니다. 'pre_get_posts'에서 get_page() 또는 쿼리를 수정하면 올바르게 작동합니다. –

+1

당신은 데이터베이스에 불필요한 여러 호출과 연결을 만드는 WordPress 기능을 의미합니까? 아무도 찾을 수없는 몇 가지 기능을 언급하는 것이 아니라 실제로 코드 샘플을 제공하는 것은 어떨까요? 제가 제안한 것은 작동하는 진짜 해결책이었습니다 ;-) – John

관련 문제