Make WordPress Core

Changeset 1823


Ignore:
Timestamp:
10/20/2004 09:28:37 PM (22 years ago)
Author:
rboren
Message:

Introducing add_query_arg() and remove_query_arg(). Props: Owen Winkler.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/options.php

    r1818 r1823  
    6666    }
    6767   
    68         $referred = str_replace('?updated=true' , '', $_SERVER['HTTP_REFERER']);
    69         $goback = str_replace('?updated=true', '', $_SERVER['HTTP_REFERER']) . '?updated=true';
     68                //$referred = str_replace('?updated=true' , '', $_SERVER['HTTP_REFERER']);
     69                $referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']);
     70                //$goback = str_replace('?updated=true', '', $_SERVER['HTTP_REFERER']) . '?updated=true';
     71                $goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']);
    7072        $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
    7173    header('Location: ' . $goback);
  • trunk/wp-includes/functions.php

    r1820 r1823  
    22462246}
    22472247
     2248/*
     2249add_query_arg: Returns a modified querystring by adding
     2250a single key & value or an associative array.
     2251Setting a key value to emptystring removes the key.
     2252Omitting oldquery_or_uri uses the $_SERVER value.
     2253
     2254Parameters:
     2255add_query_arg(newkey, newvalue, oldquery_or_uri) or
     2256add_query_arg(associative_array, oldquery_or_uri)
     2257*/
     2258function add_query_arg() {
     2259        $ret = '';
     2260        if(is_array(func_get_arg(0))) {
     2261                $uri = @func_get_arg(1);
     2262        }
     2263        else {
     2264                $uri = @func_get_arg(2);
     2265        }
     2266        if ('' == $uri) {
     2267                $uri = $_SERVER['REQUEST_URI'];
     2268        }
     2269        if (strstr($uri, '?')) {
     2270                $parts = explode('?', $uri, 2);
     2271                if (1 == count($parts)) {
     2272                        $base = '?';
     2273                        $query = $parts[0];
     2274                }
     2275                else {
     2276                        $base = $parts[0] . '?';
     2277                        $query = $parts[1];
     2278                }
     2279        }
     2280        else {
     2281                $base = $uri . '?';
     2282                $query = '';
     2283        }
     2284        parse_str($query, $qs);
     2285        if (is_array(func_get_arg(0))) {
     2286                $kayvees = func_get_arg(0);
     2287                $qs = array_merge($qs, $kayvees);
     2288        }
     2289        else
     2290    {
     2291                        $qs[func_get_arg(0)] = func_get_arg(1);
     2292    }
     2293
     2294        foreach($qs as $k => $v)
     2295    {
     2296                        if($v != '')
     2297        {
     2298                                        if($ret != '') $ret .= '&';
     2299                                        $ret .= "$k=$v";
     2300        }
     2301    }
     2302        $ret = $base . $ret;   
     2303        return trim($ret, '?');
     2304}
     2305
     2306function remove_query_arg($key, $query) {
     2307        add_query_arg($key, '', $query);
     2308}
    22482309?>
Note: See TracChangeset for help on using the changeset viewer.