我有一个页面,我要输出一个a
元素,该元素链接到当前页面,在某种情况下添加了一个GET变量。这是我的代码:
<?php
$Path=$_SERVER['REQUEST_URI'];
$URI=home_url( ).$Path;
if($_GET['showall']==1)
{
$URI = strtok($URI, '?'); //This removes the GET variables
$showWhat = "Show 12 per Page";
}
else
{
$URI .= '?' . http_build_query(array('showall'=>1));
$showWhat="Show All";
}
?>
所以它的作用是如果showall
为1,它只返回当前页面的URL而不是showall
变量。如果它不是1,则它会将?showall=1
附加到URL的末尾。
如果URL中还没有其他GET变量,则此方法很有用。如果有,我会得到这样的网址:
http://example.com?orderby=price?showall=1
这显然不起作用,因为变量之间缺少&
。
如果已存在GET变量,如何修改我的代码。
请考虑如果showall = 1,那么我想输出除了showall之外的其他GET变量的URL。 E.g http://example.com?orderby=price?
。我只是使用我已经使用过的东西来删除所有GET变量。
(这是一个wordpress网站,因此使用了home_url()
)
答案 0 :(得分:1)
怎么样:
$URI .= '?' . http_build_query(array_merge($_GET,array('showall'=>1)));
L.E: 也许:
if($_GET['showall']==1) {
$get = $_GET;
unset($get['showall']);//since you don't want this anymore
$URI = home_url('your-path-here') . '?'. http_build_query($get);
}
请注意,home_url()
可以使用uri参数,因此将相对url传递给home_url()函数(即:home_url('plugins/superplugin/the-page.php')
)。