URLからディレクトリ名を取得し、cookieの値として保存して使う

電脳備忘録

例えば下記のようなURLのサイトがあったとして、ディレクトリ名「abcd」を取得しcookieに保存し、その値を取り出して使う。

http://example.com/mysite/abcd/

ディレクトリ名を取得してcookieに格納。cookieの取得にはjquery.cookieを利用。

<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js?ver=1.4.1'></script>
<script>
$(document).ready(function() {
var $dir = location.href.split("/");//URL取得
var $dir2 = $dir[$dir.length -2];//ディレクトリ名を取り出す
$.removeCookie('dir_name');//初期化(cookieの削除)
$.cookie('dir_name', $dir2,{path:'/'});//ディレクトリ名をcookieに格納する
});
</script>

cookieに保存した値の取り出しはphpで対応。

$get_cookie = $_COOKIE["dir_name"]; 

cookieに値があったらその値でURLを作って表示し、なければデフォルトのURLを表示するようにしています。

<?php $get_cookie = $_COOKIE["dir_name"]; if (empty($get_cookie)) { ?>
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">サイト名</a>
<?php } else { ?>   
<a href="<?php echo esc_url( home_url( '/' ) ); ?>blog/<?php echo $get_cookie ?>">サイト名</a>
<?php } ?>

Cookieの取得はjQuery、取り出しはphpといびつな感じになってしまったけれど仕様通り動いているので良しとしよう。これ自体、実はあり得ないイレギュラーな動作に対応するためのものであって、普通はこういうことしないしね(多くは語れない)。

Newer
Older
Dark
Light
menu