example of build_query function?

I have this resource: (http://codex.wordpress.org/Function_Reference/build_query), but it does not give full example.

I have this URL:

Read More

mypage/?page_id=87

and this array:

array('name' => 'me')

So, I need to add the array to the end of the URL. I know the build_query function will add the proper markup ( & ), but how do I connect the function to the URL. e.g.- How do I use the function?

Related posts

1 comment

  1. build_query() converts an array into a string to be used in an URL. You can pass an array or an object:

    $test1 = array (
        'foo'   => 'bar',
        'hello' => 'world'
    );
    $query1 = build_query( $test1 );
    print "<pre>$query1</pre>"; // foo=bar&hello=world
    
    $test2 = array (
        'foo'   => 'bar',
        'hello' => 'world',
        'one'  => array( 1, 2 ),
        'two'  => array(
            'a' => 3,
            'b' => 4
        )
    );
    $query2 = build_query( $test2 );
    print "<pre>$query2</pre>"; // foo=bar&hello=world&deep%5Ba%5D=1&deep%5Bb%5D=2
    
    $test3 = new stdClass;
    $test3->foo = 'bar';
    $test3->arr = array( 5, 6, 'red' );
    $query3 = build_query( $test3 );
    print "<pre>$query3</pre>"; // foo=bar&arr%5B0%5D=5&arr%5B1%5D=6&arr%5B2%5D=red
    

    To get the current URL you can use something like this:

    $url = set_url_scheme(
            'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
        );
    

    Now you could use build_query() to append your custom array values to the URL, but you can make that easier with add_query_arg():

    $custom = array( 'name' => 'me' );
    $url    = add_query_arg( $custom, $url );
    

    add_query_arg() will look for existing parameters in the URL and make sure they don’t get lost or interfere with the $custom values. If there are duplicate entries in both, $custom will overwrite existing parameters.

    build_query() is used in add_query_arg() too, but for no obvious reasons you cannot pass an object to add_query_arg() like you can use it in build_query(). Objects are dropped silently.

Comments are closed.