0

我有一个页面,我想在其中输出一个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";
        }
?>

所以它的作用是 if showallis 1 它只返回当前页面的 URL,最后没有showall变量。如果它不是 1,那么它会附加?showall=1到 URL 的末尾。

如果 URL 中还没有另一个 GET 变量,这将非常有用。如果有,我会得到这样的 URL:

http://example.com?orderby=price?showall=1

这显然不起作用,因为&amp;变量之间存在缺失。

如果已经存在 GET 变量,我如何修改我的代码以使其工作。

请注意,如果 showall=1,那么我想用除 showall 之外的其他 GET 变量输出 URL。例如http://example.com?orderby=price?。我相信只使用我使用过的东西就会去掉所有的 GET 变量。

(这是一个wordpress网站,所以home_url()被使用)

4

1 回答 1

1

怎么样:

$URI .= '?' . http_build_query(array_merge($_GET,array('showall'=>1)));

乐:也许:

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')

于 2013-05-08T23:02:34.327 回答