web-dev-qa-db-ja.com

テンプレートからグローバル値を変更する

私はそれに異なるスタイルを割り当てるために私のテンプレートのそれぞれでphp変数をチェックしようとしていますが、値は消えているようです、助けてください、私はすでにこれを理解しようとして何時間も費やしました。私は私が行方不明に小さい何かがあることを知っています。

だからここにすべてがあります:

私はbにリンクし、www.b.com/?value=hとしてURIに値を渡すページaがあります。

bファイルが値を受け取り、グローバル変数の値をURIで渡されたものに変更してから、ページにリダイレクトします。

これは私のbファイルのコードです:

$server = $_SERVER["REQUEST_URI"]; $valuePos = stripos($server, "=");

$nodes = substr($server, ($valuePos + 1)); $endPos = stripos($server, "e"); $gender = substr($server, ($valuePos + 1), ($endPos));

$valuePos = stripos($nodes, "-");

$redirecturl = substr($nodes, ($valuePos + 1));

header( 'Location: '.$redirecturl );

$ genderはfunction.phpで宣言したグローバル変数です。デフォルト値を中立に設定しました。

別のテンプレートから$ genderにアクセスしようとすると、デフォルト値(ニュートラル)が表示されるだけです。助けてください

2
rodrigue

グローバルな$_SESSION変数を使用することで、自分がしていることの大部分を単純化できると思います。

このようなことを試してください:

add_action('wp_head', 'your_session_variable' );

function your_session_variable(){
    session_start();
    $gender = isset($_GET['gender']) ? $_GET['gender'] : $_SESSION['gender'];
    $_SESSION['gender'] = $gender;
}

テンプレートからセッション変数にアクセスするために、$_SESSION['gender']から値を取得する前にuse session_start()を必ず確認してください。

0
Douglas.Sesar