使用php Query_String的结果

时间:2012-08-17 05:16:00

标签: php wordpress

我必须在我的网址末尾添加一个查询,如下所示:

http://www.somewordpressite.com/?page_id=57?login=failed

现在我需要检查'?login = failed'是否存在,所以我可以加载正确的模板。

我尝试了很多变种,但我似乎无法抓住它。

<?php

$checkurlquery[] = $_SERVER['QUERY_STRING'];
//echo json_encode($_GET, JSON_HEX_TAG);

foreach($checkurlquery as $key => $v){
  $dice = $checkurlquery[$key];
  echo ($dice);
} 
?>

结果:page_id = 57?登录=失败

最终,我只想到达这里:

if ( //LOGIN failed )) {
        get_template_part( 'login', 'failed' );
} else {
    get_template_part( 'login', 'form' );
}

如何检查登录=失败,以便我可以使用它来加载正确的模板部分? 感谢。

修改:是的,我可以更改网址,因此它可以是:http://www.somewordpressite.com/?page_id=57&login=failed,但却产生了问题。因为Wordpress使用'?',所以如果我在主页上,并且在登录时失败,我会收到404错误:

此网址正常并抓取索引页面:
www.site.com/?login=failed

此网址是404错误:
www.site.com/&login=failed

编辑:这是Wordpress functions.php中所需的更新功能: Redirect after login, Wordpress URLs

然后在header.php(或您选择的地方)中添加:

 <?php

if(isset($_GET['login']) === true and $_GET['login'] === 'failed')
{
   get_template_part( 'login', 'failed' );
} else {
   get_template_part( 'login', 'form' );
}
?>

1 个答案:

答案 0 :(得分:2)

您不能使用普通查询字符串

http://www.somewordpressite.com/?page_id=57&login=failed

并使用类似

的内容
if ($_GET['login'] == 'failed') {
        get_template_part( 'login', 'failed' );
} else {
    get_template_part( 'login', 'form' );
}