Make WordPress Core

Ticket #38136: 38136.diff

File 38136.diff, 13.3 KB (added by desrosj, 9 years ago)

Adds fix for wp_list_pages() and fixes some spacing/tab inconsistencies in the default argument fixes.

  • src/wp-includes/post-template.php

     
    11211121        return $html;
    11221122}
    11231123
    1124 /**
    1125  * Retrieve or display list of pages in list (li) format.
    1126  *
    1127  * @since 1.5.0
    1128  * @since 4.7.0 Added the `item_spacing` argument.
    1129  *
    1130  * @see get_pages()
    1131  *
    1132  * @global WP_Query $wp_query
    1133  *
    1134  * @param array|string $args {
    1135  *     Array or string of arguments. Optional.
    1136  *
    1137  *     @type int    $child_of     Display only the sub-pages of a single page by ID. Default 0 (all pages).
    1138  *     @type string $authors      Comma-separated list of author IDs. Default empty (all authors).
    1139  *     @type string $date_format  PHP date format to use for the listed pages. Relies on the 'show_date' parameter.
    1140  *                                Default is the value of 'date_format' option.
    1141  *     @type int    $depth        Number of levels in the hierarchy of pages to include in the generated list.
    1142  *                                Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to
    1143  *                                the given n depth). Default 0.
    1144  *     @type bool   $echo         Whether or not to echo the list of pages. Default true.
    1145  *     @type string $exclude      Comma-separated list of page IDs to exclude. Default empty.
    1146  *     @type array  $include      Comma-separated list of page IDs to include. Default empty.
    1147  *     @type string $link_after   Text or HTML to follow the page link label. Default null.
    1148  *     @type string $link_before  Text or HTML to precede the page link label. Default null.
    1149  *     @type string $post_type    Post type to query for. Default 'page'.
    1150  *     @type string $post_status  Comma-separated list of post statuses to include. Default 'publish'.
    1151  *     @type string $show_date    Whether to display the page publish or modified date for each page. Accepts
    1152  *                                'modified' or any other value. An empty value hides the date. Default empty.
    1153  *     @type string $sort_column  Comma-separated list of column names to sort the pages by. Accepts 'post_author',
    1154  *                                'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt',
    1155  *                                'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'.
    1156  *     @type string $title_li     List heading. Passing a null or empty value will result in no heading, and the list
    1157  *                                will not be wrapped with unordered list `<ul>` tags. Default 'Pages'.
    1158  *     @type string $item_spacing Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'. Default 'preserve'.
    1159  *     @type Walker $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
    1160  * }
    1161  * @return string|void HTML list of pages.
    1162  */
    1163 function wp_list_pages( $args = '' ) {
    1164         $defaults = array(
    1165                 'depth' => 0, 'show_date' => '',
    1166                 'date_format' => get_option( 'date_format' ),
    1167                 'child_of' => 0, 'exclude' => '',
    1168                 'title_li' => __( 'Pages' ), 'echo' => 1,
    1169                 'authors' => '', 'sort_column' => 'menu_order, post_title',
    1170                 'link_before' => '', 'link_after' => '', 'item_spacing' => 'preserve', 'walker' => '',
    1171         );
     1124        /**
     1125         * Retrieve or display list of pages in list (li) format.
     1126         *
     1127         * @since 1.5.0
     1128         * @since 4.7.0 Added the `item_spacing` argument.
     1129         *
     1130         * @see get_pages()
     1131         *
     1132         * @global WP_Query $wp_query
     1133         *
     1134         * @param array|string $args {
     1135         *     Array or string of arguments. Optional.
     1136         *
     1137         *     @type int            $child_of     Display only the sub-pages of a single page by ID. Default 0 (all pages).
     1138         *     @type string         $authors      Comma-separated list of author IDs. Default empty (all authors).
     1139         *     @type string         $date_format  PHP date format to use for the listed pages. Relies on the 'show_date' parameter.
     1140         *                                        Default is the value of 'date_format' option.
     1141         *     @type int            $depth        Number of levels in the hierarchy of pages to include in the generated list.
     1142         *                                        Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to
     1143         *                                        the given n depth). Default 0.
     1144         *     @type bool           $echo         Whether or not to echo the list of pages. Default true.
     1145         *     @type string         $exclude      Comma-separated list of page IDs to exclude. Default empty.
     1146         *     @type array          $include      Comma-separated list of page IDs to include. Default empty.
     1147         *     @type string         $link_after   Text or HTML to follow the page link label. Default null.
     1148         *     @type string         $link_before  Text or HTML to precede the page link label. Default null.
     1149         *     @type string|array   $post_status  A comma-separated list or array of post status types to include.
     1150         *     @type string         $post_status  Comma-separated list of post statuses to include. Default 'publish'.
     1151         *     @type string         $show_date    Whether to display the page publish or modified date for each page. Accepts
     1152         *                                        'modified' or any other value. An empty value hides the date. Default empty.
     1153         *     @type string         $sort_column  Comma-separated list of column names to sort the pages by. Accepts 'post_author',
     1154         *                                        'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt',
     1155         *                                        'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'.
     1156         *     @type string         $title_li     List heading. Passing a null or empty value will result in no heading, and the list
     1157         *                                        will not be wrapped with unordered list `<ul>` tags. Default 'Pages'.
     1158         *     @type string         $item_spacing Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'. Default 'preserve'.
     1159         *     @type Walker         $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
     1160         * }
     1161         * @return string|void HTML list of pages.
     1162         */
     1163        function wp_list_pages( $args = '' ) {
     1164                $defaults = array(
     1165                        'depth'        => 0,
     1166                        'show_date'    => '',
     1167                        'date_format'  => get_option( 'date_format' ),
     1168                        'child_of'     => 0,
     1169                        'exclude'      => '',
     1170                        'title_li'     => __( 'Pages' ),
     1171                        'echo'         => 1,
     1172                        'authors'      => '',
     1173                        'sort_column'  => 'menu_order, post_title',
     1174                        'link_before'  => '',
     1175                        'link_after'   => '',
     1176                        'item_spacing' => 'preserve',
     1177                        'walker'       => '',
     1178                );
    11721179
    11731180        $r = wp_parse_args( $args, $defaults );
    11741181
  • src/wp-includes/post.php

     
    43724372 * @param array|string $args {
    43734373 *     Optional. Array or string of arguments to retrieve pages.
    43744374 *
    4375  *     @type int          $child_of     Page ID to return child and grandchild pages of. Note: The value
    4376  *                                      of `$hierarchical` has no bearing on whether `$child_of` returns
    4377  *                                      hierarchical results. Default 0, or no restriction.
    4378  *     @type string       $sort_order   How to sort retrieved pages. Accepts 'ASC', 'DESC'. Default 'ASC'.
    4379  *     @type string       $sort_column  What columns to sort pages by, comma-separated. Accepts 'post_author',
    4380  *                                      'post_date', 'post_title', 'post_name', 'post_modified', 'menu_order',
    4381  *                                      'post_modified_gmt', 'post_parent', 'ID', 'rand', 'comment_count'.
    4382  *                                      'post_' can be omitted for any values that start with it.
    4383  *                                      Default 'post_title'.
    4384  *     @type bool         $hierarchical Whether to return pages hierarchically. If false in conjunction with
    4385  *                                      `$child_of` also being false, both arguments will be disregarded.
    4386  *                                      Default true.
    4387  *     @type array        $exclude      Array of page IDs to exclude. Default empty array.
    4388  *     @type array        $include      Array of page IDs to include. Cannot be used with `$child_of`,
    4389  *                                      `$parent`, `$exclude`, `$meta_key`, `$meta_value`, or `$hierarchical`.
    4390  *                                      Default empty array.
    4391  *     @type string       $meta_key     Only include pages with this meta key. Default empty.
    4392  *     @type string       $meta_value   Only include pages with this meta value. Requires `$meta_key`.
    4393  *                                      Default empty.
    4394  *     @type string       $authors      A comma-separated list of author IDs. Default empty.
    4395  *     @type int          $parent       Page ID to return direct children of. Default -1, or no restriction.
    4396  *     @type string|array $exclude_tree Comma-separated string or array of page IDs to exclude.
    4397  *                                      Default empty array.
    4398  *     @type int          $number       The number of pages to return. Default 0, or all pages.
    4399  *     @type int          $offset       The number of pages to skip before returning. Requires `$number`.
    4400  *                                      Default 0.
    4401  *     @type string       $post_type    The post type to query. Default 'page'.
    4402  *     @type string       $post_status  A comma-separated list of post status types to include.
    4403  *                                      Default 'publish'.
     4375 *     @type int                $child_of     Page ID to return child and grandchild pages of. Note: The value
     4376 *                                            of `$hierarchical` has no bearing on whether `$child_of` returns
     4377 *                                            hierarchical results. Default 0, or no restriction.
     4378 *     @type string             $sort_order   How to sort retrieved pages. Accepts 'ASC', 'DESC'. Default 'ASC'.
     4379 *     @type string             $sort_column  What columns to sort pages by, comma-separated. Accepts 'post_author',
     4380 *                                            'post_date', 'post_title', 'post_name', 'post_modified', 'menu_order',
     4381 *                                            'post_modified_gmt', 'post_parent', 'ID', 'rand', 'comment_count'.
     4382 *                                            'post_' can be omitted for any values that start with it.
     4383 *                                            Default 'post_title'.
     4384 *     @type bool               $hierarchical Whether to return pages hierarchically. If false in conjunction with
     4385 *                                           `$child_of` also being false, both arguments will be disregarded.
     4386 *                                            Default true.
     4387 *     @type array              $exclude      Array of page IDs to exclude. Default empty array.
     4388 *     @type array              $include      Array of page IDs to include. Cannot be used with `$child_of`,
     4389 *                                            `$parent`, `$exclude`, `$meta_key`, `$meta_value`, or `$hierarchical`.
     4390 *                                            Default empty array.
     4391 *     @type string             $meta_key     Only include pages with this meta key. Default empty.
     4392 *     @type string             $meta_value   Only include pages with this meta value. Requires `$meta_key`.
     4393 *                                            Default empty.
     4394 *     @type string             $authors      A comma-separated list of author IDs. Default empty.
     4395 *     @type int                $parent       Page ID to return direct children of. Default -1, or no restriction.
     4396 *     @type string|array       $exclude_tree Comma-separated string or array of page IDs to exclude.
     4397 *                                            Default empty array.
     4398 *     @type int                $number       The number of pages to return. Default 0, or all pages.
     4399 *     @type int                $offset       The number of pages to skip before returning. Requires `$number`.
     4400 *                                            Default 0.
     4401 *     @type string             $post_type    The post type to query. Default 'page'.
     4402 *     @type string|array       $post_status  A comma-separated list or array of post status types to include.
     4403 *                                            Default 'publish'.
    44044404 * }
    44054405 * @return array|false List of pages matching defaults or `$args`.
    44064406 */
     
    44084408        global $wpdb;
    44094409
    44104410        $defaults = array(
    4411                 'child_of' => 0, 'sort_order' => 'ASC',
    4412                 'sort_column' => 'post_title', 'hierarchical' => 1,
    4413                 'exclude' => array(), 'include' => array(),
    4414                 'meta_key' => '', 'meta_value' => '',
    4415                 'authors' => '', 'parent' => -1, 'exclude_tree' => array(),
    4416                 'number' => '', 'offset' => 0,
    4417                 'post_type' => 'page', 'post_status' => 'publish',
     4411                'child_of'     => 0,
     4412                'sort_order'   => 'ASC',
     4413                'sort_column'  => 'post_title',
     4414                'hierarchical' => 1,
     4415                'exclude'      => array(),
     4416                'include'      => array(),
     4417                'meta_key'     => '',
     4418                'meta_value'   => '',
     4419                'authors'      => '',
     4420                'parent'       => -1,
     4421                'exclude_tree' => array(),
     4422                'number'       => '',
     4423                'offset'       => 0,
     4424                'post_type'    => 'page',
     4425                'post_status'  => 'publish',
    44184426        );
    44194427
    44204428        $r = wp_parse_args( $args, $defaults );