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 エラーが発生します。

この URL は問題なく、インデックス ページを取得します:
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 に答える