Wordpressを使っているときに、URLに独自のパラメータ、変数をつける方法です。
普通にWordpressを使うと、URLって、http://www.hoge.jp/?p=10みたいなカタチになります。
一応管理画面で、URLをいじることはできますが、このURLにfood=1とかneko=3とかの値を常に追加して表示したいことが、アクセス解析とかの関係であったりします。
例えば、もともとは http://www.hoge.jp/?p=10 ってURLを出力されるものを強制的に http://www.hoge.jp/?p=10&food=1&neko=3 って必ず「&food=1&neko=3」みたいに、何かパラメータや値がつくようなものをつくりたいとき、add_filter()使えば、簡単にできるだろーと思ってやってみると、うまく行きません。
サーバーではmod_write()が使えないので、どうしたものか、と色々考えたあげく、以下のようなソースをheader.phpを書くことで解決しました。
PHPのheader()を使って、URLを移動させるだけですが、header()にそのまま値を追加してって、つくると当たり前ですが、延々と同じURLに値を足してしまい、ループでアクセス不能になります。
また追加したい値がすでについていれば、追加する値を$_GET()ですでに存在するかを確認するようにしてheader()を使っても、やはり延々とURLに値を足してしまい、ページが表示できなくなります。
そこで使うのがadd_query_arg()。これはWordpressの命令です。
この命令については詳しくは下記を参考にするといいでしょう。
表示するページのURLを$_SERVER['REQUEST_URI']で取得して、そのままパラメータを加えれば解決では? と思うかもしれませんが、実はそれもダメなので、add_query_arg()でパラメータを加えます。
add_query_arg( array( 'ver1'=>'hogehoge' ) , $_SERVER['REQUEST_URI']) というカタチでURLを作ります。array( 'ver1'=>'hogehoge' )の部分は配列です。
値を複数追加したいときはarray( 'ver1'=>'hogehoge' , 'ver2'=>'hogehoge2' , 'ver3'=>'hogehoge3' )と設定します。
すでにあるURLにパラメータをつけたいけど、うまく行かない方は参考にしてください。

普通にWordpressを使うと、URLって、http://www.hoge.jp/?p=10みたいなカタチになります。
一応管理画面で、URLをいじることはできますが、このURLにfood=1とかneko=3とかの値を常に追加して表示したいことが、アクセス解析とかの関係であったりします。
例えば、もともとは http://www.hoge.jp/?p=10 ってURLを出力されるものを強制的に http://www.hoge.jp/?p=10&food=1&neko=3 って必ず「&food=1&neko=3」みたいに、何かパラメータや値がつくようなものをつくりたいとき、add_filter()使えば、簡単にできるだろーと思ってやってみると、うまく行きません。
サーバーではmod_write()が使えないので、どうしたものか、と色々考えたあげく、以下のようなソースをheader.phpを書くことで解決しました。
<?phpif(!$_GET['food']){$url = add_query_arg( array('food'=>'1', 'neko'=>'3'), $_SERVER['REQUEST_URI'] );header('Location: '.$url);exit();}?>
PHPのheader()を使って、URLを移動させるだけですが、header()にそのまま値を追加してって、つくると当たり前ですが、延々と同じURLに値を足してしまい、ループでアクセス不能になります。
また追加したい値がすでについていれば、追加する値を$_GET()ですでに存在するかを確認するようにしてheader()を使っても、やはり延々とURLに値を足してしまい、ページが表示できなくなります。
そこで使うのがadd_query_arg()。これはWordpressの命令です。
この命令については詳しくは下記を参考にするといいでしょう。
add_query_arg()でパラメータを追加するときは、配列で加えます。
表示するページのURLを$_SERVER['REQUEST_URI']で取得して、そのままパラメータを加えれば解決では? と思うかもしれませんが、実はそれもダメなので、add_query_arg()でパラメータを加えます。
add_query_arg( array( 'ver1'=>'hogehoge' ) , $_SERVER['REQUEST_URI']) というカタチでURLを作ります。array( 'ver1'=>'hogehoge' )の部分は配列です。
値を複数追加したいときはarray( 'ver1'=>'hogehoge' , 'ver2'=>'hogehoge2' , 'ver3'=>'hogehoge3' )と設定します。
すでにあるURLにパラメータをつけたいけど、うまく行かない方は参考にしてください。
ブログの反応がどれくらいあるか、知りたいので、ランキングサイトに入ってみました。よろしければクリックお願いします。
コメント