diff --git a/wp-includes/class-walker-page-dropdown.php b/wp-includes/class-walker-page-dropdown.php
new file mode 100644
index 0000000000..ab6c222c30
--- /dev/null
+++ b/wp-includes/class-walker-page-dropdown.php
@@ -0,0 +1,73 @@
+ 'post_parent', 'id' => 'ID');
+
+ /**
+ * @see Walker::start_el()
+ * @since 2.1.0
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param object $page Page data object.
+ * @param int $depth Depth of page in reference to parent pages. Used for padding.
+ * @param array $args Uses 'selected' argument for selected page to set selected HTML attribute for option
+ * element. Uses 'value_field' argument to fill "value" attribute. See {@see wp_dropdown_pages()}.
+ * @param int $id
+ */
+ public function start_el( &$output, $page, $depth = 0, $args = array(), $id = 0 ) {
+ $pad = str_repeat(' ', $depth * 3);
+
+ if ( ! isset( $args['value_field'] ) || ! isset( $page->{$args['value_field']} ) ) {
+ $args['value_field'] = 'ID';
+ }
+
+ $output .= "\t\n";
+ }
+}
diff --git a/wp-includes/class-walker-page.php b/wp-includes/class-walker-page.php
new file mode 100644
index 0000000000..5b21a050b5
--- /dev/null
+++ b/wp-includes/class-walker-page.php
@@ -0,0 +1,154 @@
+ 'post_parent', 'id' => 'ID');
+
+ /**
+ * @see Walker::start_lvl()
+ * @since 2.1.0
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param int $depth Depth of page. Used for padding.
+ * @param array $args
+ */
+ public function start_lvl( &$output, $depth = 0, $args = array() ) {
+ $indent = str_repeat("\t", $depth);
+ $output .= "\n$indent
\n";
+ }
+
+ /**
+ * @see Walker::end_lvl()
+ * @since 2.1.0
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param int $depth Depth of page. Used for padding.
+ * @param array $args
+ */
+ public function end_lvl( &$output, $depth = 0, $args = array() ) {
+ $indent = str_repeat("\t", $depth);
+ $output .= "$indent
\n";
+ }
+
+ /**
+ * @see Walker::start_el()
+ * @since 2.1.0
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param object $page Page data object.
+ * @param int $depth Depth of page. Used for padding.
+ * @param int $current_page Page ID.
+ * @param array $args
+ */
+ public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
+ if ( $depth ) {
+ $indent = str_repeat( "\t", $depth );
+ } else {
+ $indent = '';
+ }
+
+ $css_class = array( 'page_item', 'page-item-' . $page->ID );
+
+ if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
+ $css_class[] = 'page_item_has_children';
+ }
+
+ if ( ! empty( $current_page ) ) {
+ $_current_page = get_post( $current_page );
+ if ( $_current_page && in_array( $page->ID, $_current_page->ancestors ) ) {
+ $css_class[] = 'current_page_ancestor';
+ }
+ if ( $page->ID == $current_page ) {
+ $css_class[] = 'current_page_item';
+ } elseif ( $_current_page && $page->ID == $_current_page->post_parent ) {
+ $css_class[] = 'current_page_parent';
+ }
+ } elseif ( $page->ID == get_option('page_for_posts') ) {
+ $css_class[] = 'current_page_parent';
+ }
+
+ /**
+ * Filter the list of CSS classes to include with each page item in the list.
+ *
+ * @since 2.8.0
+ *
+ * @see wp_list_pages()
+ *
+ * @param array $css_class An array of CSS classes to be applied
+ * to each list item.
+ * @param WP_Post $page Page data object.
+ * @param int $depth Depth of page, used for padding.
+ * @param array $args An array of arguments.
+ * @param int $current_page ID of the current page.
+ */
+ $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
+
+ if ( '' === $page->post_title ) {
+ /* translators: %d: ID of a post */
+ $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID );
+ }
+
+ $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before'];
+ $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after'];
+
+ /** This filter is documented in wp-includes/post-template.php */
+ $output .= $indent . sprintf(
+ '%s%s%s',
+ $css_classes,
+ get_permalink( $page->ID ),
+ $args['link_before'],
+ apply_filters( 'the_title', $page->post_title, $page->ID ),
+ $args['link_after']
+ );
+
+ if ( ! empty( $args['show_date'] ) ) {
+ if ( 'modified' == $args['show_date'] ) {
+ $time = $page->post_modified;
+ } else {
+ $time = $page->post_date;
+ }
+
+ $date_format = empty( $args['date_format'] ) ? '' : $args['date_format'];
+ $output .= " " . mysql2date( $date_format, $time );
+ }
+ }
+
+ /**
+ * @see Walker::end_el()
+ * @since 2.1.0
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param object $page Page data object. Not used.
+ * @param int $depth Depth of page. Not Used.
+ * @param array $args
+ */
+ public function end_el( &$output, $page, $depth = 0, $args = array() ) {
+ $output .= "\n";
+ }
+
+}
diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php
index 09c7707417..f2354bc37e 100644
--- a/wp-includes/post-template.php
+++ b/wp-includes/post-template.php
@@ -1321,217 +1321,6 @@ function walk_page_dropdown_tree() {
return call_user_func_array(array($walker, 'walk'), $args);
}
-/**
- * Create HTML list of pages.
- *
- * @since 2.1.0
- * @uses Walker
- */
-class Walker_Page extends Walker {
- /**
- * @see Walker::$tree_type
- * @since 2.1.0
- * @var string
- */
- public $tree_type = 'page';
-
- /**
- * @see Walker::$db_fields
- * @since 2.1.0
- * @todo Decouple this.
- * @var array
- */
- public $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
-
- /**
- * @see Walker::start_lvl()
- * @since 2.1.0
- *
- * @param string $output Passed by reference. Used to append additional content.
- * @param int $depth Depth of page. Used for padding.
- * @param array $args
- */
- public function start_lvl( &$output, $depth = 0, $args = array() ) {
- $indent = str_repeat("\t", $depth);
- $output .= "\n$indent\n";
- }
-
- /**
- * @see Walker::end_lvl()
- * @since 2.1.0
- *
- * @param string $output Passed by reference. Used to append additional content.
- * @param int $depth Depth of page. Used for padding.
- * @param array $args
- */
- public function end_lvl( &$output, $depth = 0, $args = array() ) {
- $indent = str_repeat("\t", $depth);
- $output .= "$indent
\n";
- }
-
- /**
- * @see Walker::start_el()
- * @since 2.1.0
- *
- * @param string $output Passed by reference. Used to append additional content.
- * @param object $page Page data object.
- * @param int $depth Depth of page. Used for padding.
- * @param int $current_page Page ID.
- * @param array $args
- */
- public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
- if ( $depth ) {
- $indent = str_repeat( "\t", $depth );
- } else {
- $indent = '';
- }
-
- $css_class = array( 'page_item', 'page-item-' . $page->ID );
-
- if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
- $css_class[] = 'page_item_has_children';
- }
-
- if ( ! empty( $current_page ) ) {
- $_current_page = get_post( $current_page );
- if ( $_current_page && in_array( $page->ID, $_current_page->ancestors ) ) {
- $css_class[] = 'current_page_ancestor';
- }
- if ( $page->ID == $current_page ) {
- $css_class[] = 'current_page_item';
- } elseif ( $_current_page && $page->ID == $_current_page->post_parent ) {
- $css_class[] = 'current_page_parent';
- }
- } elseif ( $page->ID == get_option('page_for_posts') ) {
- $css_class[] = 'current_page_parent';
- }
-
- /**
- * Filter the list of CSS classes to include with each page item in the list.
- *
- * @since 2.8.0
- *
- * @see wp_list_pages()
- *
- * @param array $css_class An array of CSS classes to be applied
- * to each list item.
- * @param WP_Post $page Page data object.
- * @param int $depth Depth of page, used for padding.
- * @param array $args An array of arguments.
- * @param int $current_page ID of the current page.
- */
- $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
-
- if ( '' === $page->post_title ) {
- /* translators: %d: ID of a post */
- $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID );
- }
-
- $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before'];
- $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after'];
-
- /** This filter is documented in wp-includes/post-template.php */
- $output .= $indent . sprintf(
- '%s%s%s',
- $css_classes,
- get_permalink( $page->ID ),
- $args['link_before'],
- apply_filters( 'the_title', $page->post_title, $page->ID ),
- $args['link_after']
- );
-
- if ( ! empty( $args['show_date'] ) ) {
- if ( 'modified' == $args['show_date'] ) {
- $time = $page->post_modified;
- } else {
- $time = $page->post_date;
- }
-
- $date_format = empty( $args['date_format'] ) ? '' : $args['date_format'];
- $output .= " " . mysql2date( $date_format, $time );
- }
- }
-
- /**
- * @see Walker::end_el()
- * @since 2.1.0
- *
- * @param string $output Passed by reference. Used to append additional content.
- * @param object $page Page data object. Not used.
- * @param int $depth Depth of page. Not Used.
- * @param array $args
- */
- public function end_el( &$output, $page, $depth = 0, $args = array() ) {
- $output .= "\n";
- }
-
-}
-
-/**
- * Create HTML dropdown list of pages.
- *
- * @since 2.1.0
- * @uses Walker
- */
-class Walker_PageDropdown extends Walker {
- /**
- * @see Walker::$tree_type
- * @since 2.1.0
- * @var string
- */
- public $tree_type = 'page';
-
- /**
- * @see Walker::$db_fields
- * @since 2.1.0
- * @todo Decouple this
- * @var array
- */
- public $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
-
- /**
- * @see Walker::start_el()
- * @since 2.1.0
- *
- * @param string $output Passed by reference. Used to append additional content.
- * @param object $page Page data object.
- * @param int $depth Depth of page in reference to parent pages. Used for padding.
- * @param array $args Uses 'selected' argument for selected page to set selected HTML attribute for option
- * element. Uses 'value_field' argument to fill "value" attribute. See {@see wp_dropdown_pages()}.
- * @param int $id
- */
- public function start_el( &$output, $page, $depth = 0, $args = array(), $id = 0 ) {
- $pad = str_repeat(' ', $depth * 3);
-
- if ( ! isset( $args['value_field'] ) || ! isset( $page->{$args['value_field']} ) ) {
- $args['value_field'] = 'ID';
- }
-
- $output .= "\t\n";
- }
-}
-
//
// Attachments
//
diff --git a/wp-includes/post.php b/wp-includes/post.php
index 5ab158687a..42a479e3db 100644
--- a/wp-includes/post.php
+++ b/wp-includes/post.php
@@ -7,5 +7,14 @@
* @since 1.5.0
*/
+/** Core posts functionality */
require_once( ABSPATH . WPINC . '/post-functions.php' );
+
+/** Walker_Page class */
+require_once( ABSPATH . WPINC . '/class-walker-page.php' );
+
+/** Walker_PageDropdown class */
+require_once( ABSPATH . WPINC . '/class-walker-page-dropdown.php' );
+
+/** WP_Post class */
require_once( ABSPATH . WPINC . '/class-wp-post.php' );
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 3ae183aeca..1238a69f52 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
-$wp_version = '4.4-alpha-34108';
+$wp_version = '4.4-alpha-34109';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.