作为PHP函数的一部分从URL中删除查询字符串

时间:2017-07-21 18:11:52

标签: php wordpress query-string

我在Wordpress网站上创建了一个按钮,允许我的用户将其位置从'London'更改为'Manchester'

该按钮使用$_POST启动PHP功能。

作为PHP函数的一部分,我希望'clean'用户所在页面的URL(即删除查询字符串),因为如果有任何查询字符串的话改变位置,当他们尝试使用过滤器时,它会弄乱。

我找到了一种获取干净网址的方法

$url=strtok($_SERVER["REQUEST_URI"],'?');

我认为我可以使用

wp_redirect($url);

使用干净的URL刷新页面 - 但似乎不起作用。

我认为这个问题唯一的原因是它与一个由$ _POST请求启动的函数有关,而不是挂钩到正在加载的动作。因此,页面未完全重新加载。我已经查看了其他问题,告诉我如何删除查询字符串(这很有用)但最后没有重定向我。

任何想法都非常感激。

3 个答案:

答案 0 :(得分:0)

你可以尝试

header("Location: ".$url);

答案 1 :(得分:0)

请尝试

$url = strtok((empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], '?');

答案 2 :(得分:0)

我最终使用Javascript来刷新页面,其中一个函数删除了查询字符串:

<form method="post" onsubmit="setTimeout(function () { window.location = window.location.pathname; }, 150)">
    <input type="submit" name="switchman" id="switchman" value="Switch to Manchester" />
</form>