特定の方法で投稿を表示するためにWP管理者からリンクアウトしようとしています。このURL構造はexample.com/post123/?my-preview=456
です。
/post123/
は投稿に対する通常のパーマリンクです。 ?my-preview=456
は、その投稿の一部がmy-previewの値に基づいて情報を取得することを可能にします。
WPがURLから$_GET
パラメータを削除することを私は理解しているので、私はadd_filter('query_vars','my_query_vars');
と
function my_query_vars($query_vars){
$query_vars[] = 'my-preview';
return $query_vars;
}
私がその値を取得する必要がある実際のセクションで、私は使用してみました:
global $wp_query;
var_dump($wp_query->query_vars);
上の例のようなURLであっても、 'my-preview'ペアは$ wp_query-> query_vars配列のどこにもありません。
後で使用するために追加のquery_varを登録するための正しい手順を実行していませんか。私がそうであるならば、なぜそれは固執しませんか?
編集:私も試してみました:add_action('init', 'add_query_vars');
あり
function add_query_vars() {
global $wp;
$wp->add_query_var('my-preview');
}
そしてwp_die(var_dump(get_query_var('my-preview')));
はstring(0) ""
を与える
クエリ変数フィルターは、クエリで使用していないため、ここで行っていることには不要です。 GETパラメータとしてURLに追加しても、クエリ変数の配列には表示されません。GET変数をクエリ変数に変換するメカニズムはないため、削除されないだけですクエリに追加された場合。
GET varが一意であり、WordPressによって予約されていない限り、通常の方法で$_GET['my-preview']
を設定してGET varにアクセスすることを妨げるものはありません。