From 29d8832625deea683f2dedd0b074417692316d29 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 15 May 2014 01:12:13 +0000 Subject: [PATCH] Eliminate use of `extract()` in `wp_dropdown_pages()`. Adds unit tests to: `tests/post/template.php`. There was previously only one wimpy assertion for `wp_dropdown_pages()`. See #22400. Built from https://develop.svn.wordpress.org/trunk@28399 git-svn-id: http://core.svn.wordpress.org/trunk@28227 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/post-template.php | 38 ++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php index 94e898ea7c..1abf9f4c10 100644 --- a/wp-includes/post-template.php +++ b/wp-includes/post-template.php @@ -918,7 +918,7 @@ function the_meta() { * @param array|string $args Optional. Override default arguments. * @return string HTML content, if not displaying. */ -function wp_dropdown_pages($args = '') { +function wp_dropdown_pages( $args = '' ) { $defaults = array( 'depth' => 0, 'child_of' => 0, 'selected' => 0, 'echo' => 1, @@ -928,21 +928,23 @@ function wp_dropdown_pages($args = '') { ); $r = wp_parse_args( $args, $defaults ); - extract( $r, EXTR_SKIP ); - $pages = get_pages($r); + $pages = get_pages( $r ); $output = ''; // Back-compat with old system where both id and name were based on $name argument - if ( empty($id) ) - $id = $name; + if ( empty( $r['id'] ) ) { + $r['id'] = $r['name']; + } - if ( ! empty($pages) ) { - $output = "\n"; + if ( $r['show_option_no_change'] ) { + $output .= "\t\n"; + } + if ( $r['show_option_none'] ) { + $output .= "\t\n"; + } + $output .= walk_page_dropdown_tree( $pages, $r['depth'], $r ); $output .= "\n"; } @@ -951,14 +953,14 @@ function wp_dropdown_pages($args = '') { * * @since 2.1.0 * - * @param string $output HTML output for drop down list of pages. + * @param string $html HTML output for drop down list of pages. */ - $output = apply_filters( 'wp_dropdown_pages', $output ); + $html = apply_filters( 'wp_dropdown_pages', $output ); - if ( $echo ) - echo $output; - - return $output; + if ( $r['echo'] ) { + echo $html; + } + return $html; } /**