WordPress.org

Make WordPress Core

Ticket #4878: 4878.001.diff

File 4878.001.diff, 763 bytes (added by markjaquith, 11 years ago)

First try

  • wp-includes/functions.php

     
    644644                $qs[func_get_arg(0)] = func_get_arg(1);
    645645        }
    646646
    647         foreach($qs as $k => $v) {
    648                 if ( $v !== FALSE ) {
    649                         if ( $ret != '' )
    650                                 $ret .= '&';
    651                         if ( empty($v) && !preg_match('|[?&]' . preg_quote($k, '|') . '=|', $query) )
    652                                 $ret .= $k;
    653                         else
    654                                 $ret .= "$k=$v";
    655                 }
     647        foreach ( $qs as $k => $v ) {
     648                if ( $v === false )
     649                        unset($qs[$k]);
    656650        }
     651
     652        $ret = http_build_query($qs);
    657653        $ret = trim($ret, '?');
     654        $ret = preg_replace('#=(&|$)#', '$1', $ret);
    658655        $ret = $protocol . $base . $ret . $frag;
    659656        $ret = rtrim($ret, '?');
    660657        return $ret;