详解WordPress中给链接添加查询字符串的方法

yipeiwu_com6年前PHP代码库

查询字符串指的是链接中后边的问号后的查询语句,格式为 key=value,多个查询语句用 & 符号分开。add_query_arg() 函数就是 WordPress 提供的一个方便的函数,可以帮你给一个链接添加一个或者多个查询语句。

20151218154909432.png (958×120)

有人会问,添加查询字符串直接在链接后边手动追加不就可以了吗?这样有时候可行,但链接如果本身就有查询字符串就会造成格式错误的问题,而且也不利于 PHP 编写管理,而 add_query_arg() 函数帮你把一切都想好了,你只需要给出要添加查询字符串的链接和一个或多个键值与键名即可。

用法

add_query_arg( $key, $value, $old_query_or_uri );
add_query_arg( $query, $old_query_or_uri );

参数

add_query_arg() 有两种用法,第一种用法需要三个参数。

$key

(整数 | 字符串)(必须)要添加的参数的键值,像数组一样,如果是字符串则为名字,数字则选择第 N 个参数。

默认值:None

$value

(混合)(必须)要添加的值。

默认值:None

$old_query_or_uri

(字符串)(可选)被处理的链接。

默认值:False,写 False 则为 $_SERVER['REQUEST_URI']

第二种用法需要两个参数,用数组传递要被添加到链接上的查询字符串。

$query

(数组)(必须)要添加的查询,键值和键名分别对应。

默认值:None

$old_query_or_uri

(字符串)(可选)被处理的链接。

默认值:False,写 False 则为 $_SERVER['REQUEST_URI']

返回值

(字符串)添加好查询字符串的链接。

例子

第一种用法:

echo add_query_arg( 'id', 123, '//www.jb51.net' );

第二种用法:

echo add_query_arg( array( 'id' => 123 ), '//www.jb51.net' );

两个的结果都是 //www.jb51.net?id=123

其它特殊情况:

echo add_query_arg( array( 'id' => 123 ), '//www.jb51.net?query=post' );////www.jb51.net?query=post&id=123
echo add_query_arg( array( 'id' => 123, 'cat' => 'themes' ), '//www.jb51.net?query=post' );////www.jb51.net?query=post&id=123&cat=themes
echo add_query_arg( array( 'id' => 123, 'cat' => 'themes', 'query' => 'page' ), '//www.jb51.net?query=post' );////www.jb51.net?query=page&id=123&cat=themes

例子

此函数位于:wp-includes/functions.php

相关文章

详解php用static方法的原因

静态方法不需要所在类被实例化就可以直接使用。 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。 静态方法和静态变量创建后始终使用同一块内存,而使用实例...

php实现在新浪云中使用imagick生成缩略图并上传的方法

本文实例讲述了php实现在新浪云中使用imagick生成缩略图并上传的方法。分享给大家供大家参考,具体如下: imagick是一款php的图像处理插件了我们可以使用imagick来进行许...

php中用数组的方法设置cookies

复制代码 代码如下: <?php         function set_cronology($name,$value,$duration...

php实现搜索一维数组元素并删除二维数组对应元素的方法

本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下: 定义一个一维数组一个二维数组如下 $fruit=array('apple','...

php短址转换实现方法

php短址转换实现方法

本文实例讲述了php短址转换实现方法。分享给大家供大家参考。具体分析如下: 从昨天下午到现在 推翻了一个又一个的信息存储方案,从mysql到加上内存不受限制的file_get_conte...