WordPress.org

Make WordPress Core

Ticket #23020: wp_getPageList.diff

File wp_getPageList.diff, 2.1 KB (added by daniloercoli, 5 years ago)
  • wp-includes/class-wp-xmlrpc-server.php

     
    24672467
    24682468                do_action('xmlrpc_call', 'wp.getPageList');
    24692469
    2470                 // Get list of pages ids and titles
    2471                 $page_list = $wpdb->get_results("
    2472                         SELECT ID page_id,
    2473                                 post_title page_title,
    2474                                 post_parent page_parent_id,
    2475                                 post_date_gmt,
    2476                                 post_date,
    2477                                 post_status
    2478                         FROM {$wpdb->posts}
    2479                         WHERE post_type = 'page'
    2480                         ORDER BY ID
    2481                 ");
    2482 
    2483                 // The date needs to be formatted properly.
    2484                 $num_pages = count($page_list);
    2485                 for ( $i = 0; $i < $num_pages; $i++ ) {
    2486                         $page_list[$i]->dateCreated = $this->_convert_date(  $page_list[$i]->post_date );
    2487                         $page_list[$i]->date_created_gmt = $this->_convert_date_gmt( $page_list[$i]->post_date_gmt, $page_list[$i]->post_date );
    2488 
    2489                         unset($page_list[$i]->post_date_gmt);
    2490                         unset($page_list[$i]->post_date);
    2491                         unset($page_list[$i]->post_status);
     2470                $pages = get_posts( array('post_type' => 'page', 'post_status' => 'any', 'numberposts' => $num_pages) );
     2471                $num_pages = count($pages);
     2472               
     2473                $pages_struct = array();
     2474                // If we have pages, put together their info.
     2475                if ( $num_pages >= 1 ) {
     2476                        foreach ( $pages as $page ) {
     2477                                if ( current_user_can( 'edit_page', $page->ID ) ) {
     2478                                        $current_page_with_all_details = $this->_prepare_page( $page );
     2479                                        $current_page = new stdClass();
     2480                                        $current_page->page_id = $current_page_with_all_details['page_id'];
     2481                                        $current_page->page_title = $current_page_with_all_details['title'];
     2482                                        $current_page->page_parent_id = $current_page_with_all_details['wp_page_parent_id'];
     2483                                        $current_page->post_status = $current_page_with_all_details['page_status'];
     2484                                        $current_page->dateCreated = $current_page_with_all_details['dateCreated'];
     2485                                        $current_page->date_created_gmt = $current_page_with_all_details['date_created_gmt'];
     2486                                        $pages_struct[] = $current_page;
     2487                                }
     2488                        }
    24922489                }
    2493 
    2494                 return($page_list);
     2490               
     2491                return $pages_struct;
    24952492        }
    24962493
    24972494        /**