2015-06-16 3 views
1

У меня есть функции, которые выводят 10 ссылок, я хотел бы разделить ссылки на два div, но я думаю, что эхо теряется при вызове функции.Разделите foreach на несколько divs

Это то, что у меня есть:

  function wpb_list_child_pages() { 

      $args = array(
      'sort_order' => 'asc', 
      'sort_column' => 'post_title', 
      'hierarchical' => 1, 
      'meta_value' => '', 
      'child_of' => 108, 
      'parent' => -1, 
      'exclude_tree' => '', 
      'offset' => 0, 
      'post_type' => 'page', 
      'post_status' => 'publish' 
      ); 
      $pages = get_pages($args); 


      if ($pages) 
      { 
      $links = ''; 
      $counter = 1; 
      foreach($pages as $page): 

      $links .= '<ul> <li> <a href=" ' . get_page_link($page->ID) . '"> ' .$page->post_title . ' </a> </li></ul>'; 
      $counter++; // increment the counter variable for each loop 
      endforeach; 

      return $links; 

      } 

      } 

И вот почему я пытался сделать:

  function wpb_list_child_pages() { 

      $args = array(
      'sort_order' => 'asc', 
      'sort_column' => 'post_title', 
      'hierarchical' => 1, 
      'meta_value' => '', 
      'child_of' => 108, 
      'parent' => -1, 
      'exclude_tree' => '', 
      'offset' => 0, 
      'post_type' => 'page', 
      'post_status' => 'publish' 
      ); 
      $pages = get_pages($args); 


      if ($pages) 
      { 
      $links = ''; 
      $counter = 1; 
      foreach($pages as $page): 
      if($counter == 1) { 
      echo "<div class='left_class'>"; // open left div 
      } 
      $links .= '<ul> <li> <a href=" ' . get_page_link($page->ID) . '"> ' .$page->post_title . ' </a> </li></ul>'; 
      //var_dump ($links); 
      if($counter==5){ 
      echo "</div>"; //close left div 
      echo "<div class='right_class'>"; // open right div 
      } 

      if($counter==10){ 
      echo "</div>"; //close right div 
      } 
      $counter++; // increment the counter variable for each loop 
      endforeach; 

      return $links; 

      }        
      } 

и это, как я вызываю функцию

echo '<div class="section-1">'.wpb_list_child_pages().'</div>'; 

ответ

0

Ваш скрипт, кажется, собирает ссылки в переменной до того, как он выведет его. Ваш (плохо отступ) пример должен выглядеть следующим образом:

 function wpb_list_child_pages() { 

     $args = array(
     'sort_order' => 'asc', 
     'sort_column' => 'post_title', 
     'hierarchical' => 1, 
     'meta_value' => '', 
     'child_of' => 108, 
     'parent' => -1, 
     'exclude_tree' => '', 
     'offset' => 0, 
     'post_type' => 'page', 
     'post_status' => 'publish' 
     ); 
     $pages = get_pages($args); 


     if ($pages) 
     { 
     $links = ''; 
     $counter = 1; 
     foreach($pages as $page): 
     if($counter == 1) { 
     $links .= "<div class='left_class'>"; // open left div 
     } 
     $links .= '<ul> <li> <a href=" ' . get_page_link($page->ID) . '"> ' .$page->post_title . ' </a> </li></ul>'; 
     //var_dump ($links); 
     if($counter==5){ 
     $links .= "</div>"; //close left div 
     $links .= "<div class='right_class'>"; // open right div 
     } 

     if($counter==10){ 
     $links .= "</div>"; //close right div 
     } 
     $counter++; // increment the counter variable for each loop 
     endforeach; 

     return $links; 

     }        
     } 

Итак, что пошло не так, это ты повторил все ваше (открытие и закрытие) метки перед тем, как повторил ссылки.

+0

Спасибо, что так много @JohannBauer это сработало. – muzemuze

Смежные вопросы