WP_Posts_List_Table::_page_rows() – Given a top level page ID, display the nested hierarchy of sub-pages together with paging support

You appear to be a bot. Output may be restricted

Description

Given a top level page ID, display the nested hierarchy of sub-pages together with paging support

Usage

WP_Posts_List_Table::_page_rows( $children_pages, $count, $parent_page, $level, $pagenum, $per_page, $to_display );

Parameters

$children_pages
( array ) required
$count
( int ) required
$parent_page
( int ) required
$level
( int ) required
$pagenum
( int ) required
$per_page
( int ) required
$to_display
( array ) required – List of pages to be displayed. Passed by reference.

Returns

void

Source

File name: wordpress/wp-admin/includes/class-wp-posts-list-table.php


Lines:

1 to 57 of 57
  private function _page_rows( &$children_pages, &$count, $parent_page, $level, $pagenum, $per_page, &$to_display ) {
    if ( ! isset( $children_pages[ $parent_page ] ) ) {
      return;
    }

    $start = ( $pagenum - 1 ) * $per_page;
    $end   = $start + $per_page;

    foreach ( $children_pages[ $parent_page ] as $page ) {
      if ( $count >= $end ) {
        break;
      }

      // If the page starts in a subtree, print the parents.
      if ( $count === $start && $page->post_parent > 0 ) {
        $my_parents = array();
        $my_parent  = $page->post_parent;

        while ( $my_parent ) {
          // Get the ID from the list or the attribute if my_parent is an object.
          $parent_id = $my_parent;

          if ( is_object( $my_parent ) ) {
            $parent_id = $my_parent->ID;
          }

          $my_parent    = get_post( $parent_id );
          $my_parents[] = $my_parent;

          if ( ! $my_parent->post_parent ) {
            break;
          }

          $my_parent = $my_parent->post_parent;
        }

        $num_parents = count( $my_parents );

        while ( $my_parent = array_pop( $my_parents ) ) {
          $to_display[ $my_parent->ID ] = $level - $num_parents;
          $num_parents--;
        }
      }

      if ( $count >= $start ) {
        $to_display[ $page->ID ] = $level;
      }

      $count++;

      $this->WP_Posts_List_Table::_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page, $to_display );
    }

    unset( $children_pages[ $parent_page ] ); // Required in order to keep track of orphans.
  }
 

 View on GitHub View on Trac