2016-09-08 82 views
0

我在wp_list_pages上使用自定義步行者,現在我想根據他們是否有孩子來更改$ link和$ checkchildren的值。wp_list_pages檢查是否沒有子女

我想$ linkcss和$ checkchildren爲空,如果它有沒有孩子

$children = wp_list_pages(array(
    'sort_column' => 'menu_order', 
    'title_li' => '', 
    'echo'  => 1, 
    'walker' => new Sidebar_Custom_Walker() 
)); 




class Sidebar_Custom_Walker extends Walker_Page { 
    function start_el(&$output, $page, $depth, $args, $current_page = 0) { 
     $output .= $indent . '<li class="rtChild">'; 
     $linkcss ="c1"; // should be blank if no children 
     $output .= '<a href="' . get_permalink($page->ID) . '" class="'.$linkcss .'">' . $link_before; 
     $output .= apply_filters('the_title', $page->post_title, $page->ID); 
     $output .= $link_after . '</a> 
     $checkchildren = '<span class="plusBtn"></span>'; // should be blank if no children 
     $output .= $checkchildren; 
    } 
} 

回答

0

一個快速的方法來做到這一點是使用WordPress的內置功能get_pages()方法start_el內。讓我們打破這件事:

第一部分:

<?php 

    class Sidebar_Custom_Walker extends Walker_Page { 

     function start_el(&$output, $page, $depth, $args, $current_page = 0) { 

      $output    .= $indent . '<li class="rtChild">'; 

新的零件:

  // Retrieve page children with get_pages() 
      // in combination with current $page->ID. 
      $page_children  = get_pages(array('child_of' => $page->ID)); 

      // Count amount of pages 
      $page_children_count = count($page_children); 

      // Does this page have children? 
      if($page_children_count > 0){ 
       // Page has children 
       $linkcss   = "c1"; 
       $checkchildren = '<span class="plusBtn"></span>'; 
      }else{ 
       // Page has no children 
       $linkcss   = null; 
       $checkchildren = null; 
      } 

而我們的輸出保持不變:

  $output .= '<a href="' . get_permalink($page->ID) . '" class="'.$linkcss .'">' . $link_before; 
      $output .= apply_filters('the_title', $page->post_title, $page->ID); 
      $output .= $link_after . '</a>'; 
      $output .= $checkchildren; 

     } 

    } 


?> 

我不是確定將字符串取消並在ano中使用它們是一種好的做法其後變爲$output

我個人將其設置爲空:

$linkcss  = ""; 
$checkchildren = "";