我已经购买了重力表单wordpress插件,我遇到了一个问题,即它无法根据用户的输入将用户重定向到特定的URL。然而,开发人员告诉我它具有重定向到页面并根据输入引入查询字符串的功能。我需要做的就是在页面上使用PHP根据查询字符串重定向到另一个URL。
我已在wordpress网站上创建了一个 / formsubmitredirect 页面,并成功从链接 / formsubmitredirect的末尾提取查询字符串?否或 / formsubmitredirect?是基于用户输入。
如何根据这些查询字符串重定向此页面?
由于
答案 0 :(得分:2)
您的问题的答案取决于您如何抓取查询字符串。您是在页面模板还是短代码功能中执行此操作?
如果其中一个是真的,主要的问题是,如果你已经在加载代码的页面之前已经将标题加载到html中,那么php是否会对已经发送到浏览器的标题抱怨并赢得'做重定向!
根据我使用wordpress的经验,最好的选择是挂钩template_redirect操作,检查那里的查询变量,并在wordpress加载任何模板之前重定向。例如:
function my_redirect(){
if(isset($_GET["yourvariable"]) && !empty($_GET["yourvariable"])){
do your redirect here with wp_redirect()
exit; //prevent wordpress continuing to load templates
}
}
add_action("template_redirect","my_redirect");
答案 1 :(得分:1)
在进行任何输出之前,请更改位置标题:
<?
header('Location: newloc.php'); // change to your liking
答案 2 :(得分:1)
查询字符串位于$_GET()
数组中,因此您可以执行此操作 -
if($_GET['formsubmitredirect '] == 'yes') {
header("Location: newpage");
exit();
} else {
header("Location: somewhereelse");
exit();
}
答案 3 :(得分:1)
您可以使用
$_SERVER['QUERY_STRING']
获取当前查询字符串,并可以使用if condition ...
答案 4 :(得分:1)
您可以使用基于GET参数的开关
switch ($_GET['location']) {
case 'index':
header("Location: index.php");
break;
case 'news':
header("Location: news.php");
break;
default:
header("Location: home.php");
break;
}
现在您只需使用page.php?location = index
即可触发此切换