PATH_INFOを取得してhiddenに代入
URLにパラメータをくっつけて、GETで送信する場合、
http://www.example.com/?param0=aaa¶m1=bbb
という感じで渡して、受け取るときは
$param0 = $_GET['param0'];
$param1 = $_GET['param1'];
または
$param0 = $_REQUEST['param0'];
$param1 = $_REQUEST['param1'];
というようにするのが一般的ですが、以下のように、
http://www.example.com/aaa/bbb/
で値を渡して、受け取りは
$param = split("[/\.]", $_SERVER["PATH_INFO"]);
とすると、$param[0] に「aaa」が、$param[1] に「bbb」が代入されます。
さて、これを WordPress でやろうとすると、「aaa」とか「bbb」をURLとして処理しようとしてしまい、当然パーマリンクや実体があるわけではないので、表示できません(実体があればそちらを表示しちゃう)。
WordPress では PATH_INFO を使わない方がよさそうなのですが、使わざるを得ない場合、WordPress とは関係なく、一旦 PATH_INFO を受けるプログラムを作成し、そこから何かしらの方法で WordPress にパラメータを渡すようにします。
受け方は上記の通りなので、あとは渡し方になるのですが、手軽なのは GET でリダイレクトする方法でしょう。
$url = "遷移先URL?param0=" . $param0 . "¶m1=" . $param1;
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $url );
GETではURLにパラメータが見えるということであれば、セッションを使う方法もある。
session_start();
$_SESSION[ 'param0' ] = $param0;
$_SESSION[ 'param1' ] = $param1;
$url = "遷移先URL;
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $url );
cookie が使えればこれでよいが、使えないなら
header("Location: " . $url . "?" . session_name() . "=" . session_id() );
として、GETでセッションIDを渡せばよい。