From c213997f4887599296ca8eb411020d48ac0ee842 Mon Sep 17 00:00:00 2001 From: rob1n Date: Fri, 11 May 2007 03:10:05 +0000 Subject: [PATCH] Use wp_parse_args(). fixes #4237 git-svn-id: https://develop.svn.wordpress.org/trunk@5444 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/author-template.php | 15 +++--- wp-includes/bookmark-template.php | 78 +++++++++++++++--------------- wp-includes/bookmark.php | 21 ++++---- wp-includes/category-template.php | 60 ++++++++++++----------- wp-includes/category.php | 33 +++++++------ wp-includes/classes.php | 18 ++++--- wp-includes/deprecated.php | 5 +- wp-includes/general-template.php | 20 ++++---- wp-includes/post-template.php | 57 +++++++++++----------- wp-includes/post.php | 79 ++++++++++++++++--------------- 10 files changed, 195 insertions(+), 191 deletions(-) diff --git a/wp-includes/author-template.php b/wp-includes/author-template.php index 20fe79ce22..2561eb5ef3 100644 --- a/wp-includes/author-template.php +++ b/wp-includes/author-template.php @@ -175,14 +175,13 @@ function get_author_name( $auth_id ) { function wp_list_authors($args = '') { global $wpdb; - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('optioncount' => false, 'exclude_admin' => true, 'show_fullname' => false, 'hide_empty' => true, - 'feed' => '', 'feed_image' => ''); - $r = array_merge($defaults, $r); + $defaults = array( + 'optioncount' => false, 'exclude_admin' => true, + 'show_fullname' => false, 'hide_empty' => true, + 'feed' => '', 'feed_image' => '' + ); + + $r = wp_parse_args( $args, $defaults ); extract($r); // TODO: Move select to get_authors(). diff --git a/wp-includes/bookmark-template.php b/wp-includes/bookmark-template.php index be68a33da8..2a06cf2a2a 100644 --- a/wp-includes/bookmark-template.php +++ b/wp-includes/bookmark-template.php @@ -9,28 +9,23 @@ **/ function wp_get_links($args = '') { global $wpdb; - - if ( empty($args) ) - return; - - if ( false === strpos($args, '=') ) { + + if ( strpos( $args, '=' ) === false ) { $cat_id = $args; - $args = add_query_arg('category', $cat_id, $args); + $args = add_query_arg( 'category', $cat_id, $args ); } - - parse_str($args); - - if ( !isset($category) ) $category = -1; - if ( !isset($before) ) $before = ''; - if ( !isset($after) ) $after = '
'; - if ( !isset($between) ) $between = ' '; - if ( !isset($show_images) ) $show_images = true; - if ( !isset($orderby) ) $orderby = 'name'; - if ( !isset($show_description) ) $show_description = true; - if ( !isset($show_rating) ) $show_rating = false; - if ( !isset($limit) ) $limit = -1; - if ( !isset($show_updated) ) $show_updated = 1; - if ( !isset($echo) ) $echo = true; + + $defaults = array( + 'category' => -1, 'before' => '', + 'after' => '
', 'between' => ' ', + 'show_images' => true, 'orderby' => 'name', + 'show_description' => true, 'show_rating' => false, + 'limit' => -1, 'show_updated' => true, + 'echo' => true + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); return get_links($category, $before, $after, $between, $show_images, $orderby, $show_description, $show_rating, $limit, $show_updated, $echo); } // end wp_get_links @@ -245,15 +240,14 @@ function get_links_list($order = 'name', $hide_if_empty = 'obsolete') { } function _walk_bookmarks($bookmarks, $args = '' ) { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('show_updated' => 0, 'show_description' => 0, 'show_images' => 1, 'before' => '
  • ', - 'after' => '
  • ', 'between' => "\n"); - $r = array_merge($defaults, $r); - extract($r); + $defaults = array( + 'show_updated' => 0, 'show_description' => 0, + 'show_images' => 1, 'before' => '
  • ', + 'after' => '
  • ', 'between' => "\n" + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); foreach ( (array) $bookmarks as $bookmark ) { if ( !isset($bookmark->recently_updated) ) @@ -320,18 +314,20 @@ function _walk_bookmarks($bookmarks, $args = '' ) { } function wp_list_bookmarks($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '', - 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1, - 'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '

    ', 'title_after' => '

    ', - 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', - 'category_before' => '
  • ', 'category_after' => '
  • '); - $r = array_merge($defaults, $r); - extract($r); + $defaults = array( + 'orderby' => 'name', 'order' => 'ASC', + 'limit' => -1, 'category' => '', + 'category_name' => '', 'hide_invisible' => 1, + 'show_updated' => 0, 'echo' => 1, + 'categorize' => 1, 'title_li' => __('Bookmarks'), + 'title_before' => '

    ', 'title_after' => '

    ', + 'category_orderby' => 'name', 'category_order' => 'ASC', + 'class' => 'linkcat', 'category_before' => '
  • ', + 'category_after' => '
  • ' + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); $output = ''; diff --git a/wp-includes/bookmark.php b/wp-includes/bookmark.php index 9e6f0d360a..452efa1699 100644 --- a/wp-includes/bookmark.php +++ b/wp-includes/bookmark.php @@ -25,16 +25,17 @@ function get_link($bookmark_id, $output = OBJECT) { function get_bookmarks($args = '') { global $wpdb; - - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '', - 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'include' => '', 'exclude' => ''); - $r = array_merge($defaults, $r); - extract($r); + + $defaults = array( + 'orderby' => 'name', 'order' => 'ASC', + 'limit' => -1, 'category' => '', + 'category_name' => '', 'hide_invisible' => 1, + 'show_updated' => 0, 'include' => '', + 'exclude' => '' + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); $key = md5( serialize( $r ) ); if ( $cache = wp_cache_get( 'get_bookmarks', 'bookmark' ) ) diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php index c78fa82e49..eea83db83c 100644 --- a/wp-includes/category-template.php +++ b/wp-includes/category-template.php @@ -169,20 +169,21 @@ function category_description($category = 0) { } function wp_dropdown_categories($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('show_option_all' => '', 'show_option_none' => '', 'orderby' => 'ID', - 'order' => 'ASC', 'show_last_update' => 0, 'show_count' => 0, - 'hide_empty' => 1, 'child_of' => 0, 'exclude' => '', 'echo' => 1, - 'selected' => 0, 'hierarchical' => 0, 'name' => 'cat', - 'class' => 'postform'); + $defaults = array( + 'show_option_all' => '', 'show_option_none' => '', + 'orderby' => 'ID', 'order' => 'ASC', + 'show_last_update' => 0, 'show_count' => 0, + 'hide_empty' => 1, 'child_of' => 0, + 'exclude' => '', 'echo' => 1, + 'selected' => 0, 'hierarchical' => 0, + 'name' => 'cat', 'class' => 'postform' + ); + $defaults['selected'] = ( is_category() ) ? get_query_var('cat') : 0; - $r = array_merge($defaults, $r); + + $r = wp_parse_args( $args, $defaults ); $r['include_last_update_time'] = $r['show_last_update']; - extract($r); + extract( $r ); $categories = get_categories($r); @@ -218,23 +219,28 @@ function wp_dropdown_categories($args = '') { } function wp_list_categories($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('show_option_all' => '', 'orderby' => 'name', - 'order' => 'ASC', 'show_last_update' => 0, 'style' => 'list', - 'show_count' => 0, 'hide_empty' => 1, 'use_desc_for_title' => 1, - 'child_of' => 0, 'feed' => '', 'feed_image' => '', 'exclude' => '', - 'hierarchical' => true, 'title_li' => __('Categories')); - $r = array_merge($defaults, $r); - if ( !isset($r['pad_counts']) && $r['show_count'] && $r['hierarchical'] ) + $defaults = array( + 'show_option_all' => '', 'orderby' => 'name', + 'order' => 'ASC', 'show_last_update' => 0, + 'style' => 'list', 'show_count' => 0, + 'hide_empty' => 1, 'use_desc_for_title' => 1, + 'child_of' => 0, 'feed' => '', + 'feed_image' => '', 'exclude' => '', + 'hierarchical' => true, 'title_li' => __('Categories') + ); + + $r = wp_parse_args( $args, $defaults ); + + if ( !isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) { $r['pad_counts'] = true; - if ( isset($r['show_date']) ) + } + + if ( isset( $r['show_date'] ) ) { $r['include_last_update_time'] = $r['show_date']; - extract($r); - + } + + extract( $r ); + $categories = get_categories($r); $output = ''; diff --git a/wp-includes/category.php b/wp-includes/category.php index 2d719eb9f6..37460c69cc 100644 --- a/wp-includes/category.php +++ b/wp-includes/category.php @@ -16,22 +16,25 @@ function get_all_category_ids() { function &get_categories($args = '') { global $wpdb, $category_links; - - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('type' => 'post', 'child_of' => 0, 'orderby' => 'name', 'order' => 'ASC', - 'hide_empty' => true, 'include_last_update_time' => false, 'hierarchical' => 1, 'exclude' => '', 'include' => '', - 'number' => '', 'pad_counts' => false); - $r = array_merge($defaults, $r); - if ( 'count' == $r['orderby'] ) + + $defaults = array( + 'type' => 'post', 'child_of' => 0, + 'orderby' => 'name', 'order' => 'ASC', + 'hide_empty' => true, 'include_last_update_time' => false, + 'hierarchical' => 1, 'exclude' => '', + 'include' => '', 'number' => '', + 'pad_counts' => false + ); + + $r = wp_parse_args( $args, $defaults ); + + if ( $r['orderby'] == 'count' ) { $r['orderby'] = 'category_count'; - else - $r['orderby'] = "cat_" . $r['orderby']; // restricts order by to cat_ID and cat_name fields - $r['number'] = (int) $r['number']; - extract($r); + } else { + $r['orderby'] = 'cat_' . $r['orderby']; + } + + extract( $r ); $key = md5( serialize( $r ) ); if ( $cache = wp_cache_get( 'get_categories', 'category' ) ) diff --git a/wp-includes/classes.php b/wp-includes/classes.php index d223b6ac62..2363803db3 100644 --- a/wp-includes/classes.php +++ b/wp-includes/classes.php @@ -687,16 +687,14 @@ class WP_Ajax_Response { // a WP_Error object can be passed in 'id' or 'data' function add( $args = '' ) { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('what' => 'object', 'action' => false, 'id' => '0', 'old_id' => false, - 'data' => '', 'supplemental' => array()); - - $r = array_merge($defaults, $r); - extract($r); + $defaults = array( + 'what' => 'object', 'action' => false, + 'id' => '0', 'old_id' => false, + 'data' => '', 'supplemental' => array() + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); if ( is_wp_error($id) ) { $data = $id; diff --git a/wp-includes/deprecated.php b/wp-includes/deprecated.php index 33351363c1..5807238251 100644 --- a/wp-includes/deprecated.php +++ b/wp-includes/deprecated.php @@ -427,10 +427,7 @@ function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_orde } function wp_list_cats($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); + $r = wp_parse_args( $args ); // Map to new names. if ( isset($r['optionall']) && isset($r['all'])) diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php index fd0f86922e..ea1c7f5fd6 100644 --- a/wp-includes/general-template.php +++ b/wp-includes/general-template.php @@ -313,16 +313,16 @@ function get_archives_link($url, $text, $format = 'html', $before = '', $after = function wp_get_archives($args = '') { - global $wp_locale, $wpdb; - - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('type' => 'monthly', 'limit' => '', 'format' => 'html', 'before' => '', 'after' => '', 'show_post_count' => false); - $r = array_merge($defaults, $r); - extract($r); + global $wpdb; + + $defaults = array( + 'type' => 'monthly', 'limit' => '', + 'format' => 'html', 'before' => '', + 'after' => '', 'show_post_count' => false + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); if ( '' == $type ) $type = 'monthly'; diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php index b2b6af4c0b..cee198b3e9 100644 --- a/wp-includes/post-template.php +++ b/wp-includes/post-template.php @@ -135,19 +135,17 @@ function has_excerpt( $id = 0 ) { } function wp_link_pages($args = '') { - global $post; + $defaults = array( + 'before' => '

    ' . __('Pages:'), 'after' => '

    ', + 'next_or_number' => 'number', 'nextpagelink' => __('Next page'), + 'previouspagelink' => __('Previous page'), 'pagelink' => '%', + 'more_file' => '', 'echo' => 1 + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('before' => '

    ' . __('Pages:'), 'after' => '

    ', 'next_or_number' => 'number', 'nextpagelink' => __('Next page'), - 'previouspagelink' => __('Previous page'), 'pagelink' => '%', 'more_file' => '', 'echo' => 1); - $r = array_merge($defaults, $r); - extract($r); - - global $id, $page, $numpages, $multipage, $more, $pagenow; + global $post, $id, $page, $numpages, $multipage, $more, $pagenow; if ( $more_file != '' ) $file = $more_file; else @@ -251,15 +249,14 @@ function the_meta() { // function wp_dropdown_pages($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('depth' => 0, 'child_of' => 0, 'selected' => 0, 'echo' => 1, - 'name' => 'page_id', 'show_option_none' => ''); - $r = array_merge($defaults, $r); - extract($r); + $defaults = array( + 'depth' => 0, 'child_of' => 0, + 'selected' => 0, 'echo' => 1, + 'name' => 'page_id', 'show_option_none' => '' + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); $pages = get_pages($r); $output = ''; @@ -281,14 +278,16 @@ function wp_dropdown_pages($args = '') { } function wp_list_pages($args = '') { - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'), - 'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => '', 'sort_column' => 'menu_order, post_title'); - $r = array_merge($defaults, $r); + $defaults = array( + 'depth' => 0, 'show_date' => '', + 'date_format' => get_option('date_format'), + 'child_of' => 0, 'exclude' => '', + 'title_li' => __('Pages'), 'echo' => 1, + 'authors' => '', 'sort_column' => 'menu_order, post_title' + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); $output = ''; $current_page = 0; diff --git a/wp-includes/post.php b/wp-includes/post.php index c1097ab4ea..b0104d78ea 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -27,23 +27,25 @@ function update_attached_file( $attachment_id, $file ) { function &get_children($args = '', $output = OBJECT) { global $post_cache, $wpdb, $blog_id; - - if ( empty($args) ) { - if ( isset($GLOBALS['post']) ) - $r = array('post_parent' => & $GLOBALS['post']->post_parent); - else + + if ( empty( $args ) ) { + if ( isset( $GLOBALS['post'] ) ) { + $args = 'post_parent=' . (int) $GLOBALS['post']->post_parent; + } else { return false; - } elseif ( is_object($args) ) - $r = array('post_parent' => $post->post_parent); - elseif ( is_numeric($args) ) - $r = array('post_parent' => $args); - elseif ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('numberposts' => -1, 'post_type' => '', 'post_status' => '', 'post_parent' => 0); - $r = array_merge($defaults, $r); + } + } elseif ( is_object( $args ) ) { + $args = 'post_parent=' . (int) $args->post_parent; + } elseif ( is_numeric( $args ) ) { + $args = 'post_parent=' . (int) $args; + } + + $defaults = array( + 'numberposts' => -1, 'post_type' => '', + 'post_status' => '', 'post_parent' => 0 + ); + + $r = wp_parse_args( $args, $defaults ); $children = get_posts( $r ); @@ -172,17 +174,19 @@ function get_post_type($post = false) { function get_posts($args) { global $wpdb; - - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('numberposts' => 5, 'offset' => 0, 'category' => 0, - 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', - 'meta_key' => '', 'meta_value' =>'', 'post_type' => 'post', 'post_status' => 'publish', 'post_parent' => 0); - $r = array_merge($defaults, $r); - extract($r); + + $defaults = array( + 'numberposts' => 5, 'offset' => 0, + 'category' => 0, 'orderby' => 'post_date', + 'order' => 'DESC', 'include' => '', + 'exclude' => '', 'meta_key' => '', + 'meta_value' =>'', 'post_type' => 'post', + 'post_status' => 'publish', 'post_parent' => 0 + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); + $numberposts = (int) $numberposts; $offset = (int) $offset; $category = (int) $category; @@ -1163,16 +1167,17 @@ function get_page_uri($page_id) { function &get_pages($args = '') { global $wpdb; - - if ( is_array($args) ) - $r = &$args; - else - parse_str($args, $r); - - $defaults = array('child_of' => 0, 'sort_order' => 'ASC', 'sort_column' => 'post_title', - 'hierarchical' => 1, 'exclude' => '', 'include' => '', 'meta_key' => '', 'meta_value' => '', 'authors' => ''); - $r = array_merge($defaults, $r); - extract($r); + + $defaults = array( + 'child_of' => 0, 'sort_order' => 'ASC', + 'sort_column' => 'post_title', 'hierarchical' => 1, + 'exclude' => '', 'include' => '', + 'meta_key' => '', 'meta_value' => '', + 'authors' => '' + ); + + $r = wp_parse_args( $args, $defaults ); + extract( $r ); $key = md5( serialize( $r ) ); if ( $cache = wp_cache_get( 'get_pages', 'page' ) )