0

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

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?login=failed

最终,我只是想到达这里:

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

如何检查 login=failed,以便我可以使用它来加载正确的模板部分?谢谢。

编辑:是的,我能够更改 URL,所以它可以是:http://www.somewordpressite.com/?page_id=57&login=failed,但它产生了一个问题。因为 Wordpress 使用那个“?”,所以如果我在主页上,并且登录失败,我会收到 404 错误:

这个网址没问题,抓取索引页:
www.site.com/ ?login=failed

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

编辑:这是 Wordpress functions.php 中必要的更新功能: 登录后重定向,Wordpress URL

然后在 header.php(或您选择的位置)中,添加:

 <?php

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

2 回答 2

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' );
}
于 2012-08-17T05:21:23.993 回答
0

如果要测试查询字符串参数是否存在

if(isset($_GET['LOGIN']) === true)
{
 // it has at least been set
}

此外,如果您还想测试特定值

if(isset($_GET['login']) === true and $_GET['login'] === 'failed')
{
 // it been set and it equals a specific value
}
于 2012-08-17T05:23:18.637 回答