Build_Query函数示例?

时间:2013-12-22 作者:user56258

我有以下资源:(http://codex.wordpress.org/Function_Reference/build_query), 但它并没有给出完整的例子。

我有以下URL:

mypage/?page\\u id=87

和此阵列:

array(\'name\' => \'me\')
因此,我需要将数组添加到URL的末尾。我知道build\\u query函数将添加正确的标记(&;),但是如何将函数连接到URL。e、 g.-如何使用该功能?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

build_query() 将数组转换为要在URL中使用的字符串。可以传递数组或对象:

$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
要获取当前URL,可以使用以下内容:

$url = set_url_scheme(
        \'http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\']
    );
现在您可以使用build_query() 将自定义数组值附加到URL,但可以使用add_query_arg():

$custom = array( \'name\' => \'me\' );
$url    = add_query_arg( $custom, $url );
add_query_arg() 将在URL中查找现有参数,并确保它们不会丢失或干扰$custom 价值观如果两者中都有重复的条目,$custom 将覆盖现有参数。

build_query() 用于add_query_arg() 也可以,但没有明显的原因,您无法将对象传递给add_query_arg() 就像你可以在build_query(). 对象以静默方式放置。

结束