モバイルユーザーをモバイルサイトにリダイレクトする小さなWordPressプラグイン( mobileesp-for-wordpress )を書きました。これは mobileesp に基づいています。
プラグイン自体は問題なく動作しますが、サイト全体を表示するオプションを追加しました。この機能はクッキーをチェックすることによって機能し、クッキーがあるかどうかはユーザーをモバイルサイトにリダイレクトしません。
これも機能しますが、ユーザーはリンクを2回クリックする必要があります。一度クッキーを設定し、それらをWordPressサイトに戻すために2回目。完全なコードはこちら で見つけることができます が、これが関連する部分だと思います。
$get_cookie_check = $_GET['view_full_site'];
if(isset($get_cookie_check)){
if($get_cookie_check =='true'){
//set the cookie
setcookie("mobileesp_wp_full_site", 'true', time()+86400, "/", $domain);
}
}
//cookie variable
$full_site_cookie= $_COOKIE['mobileesp_wp_full_site'];
//make sure the target url is set and full site cookie isn't set
if((get_option('mobileesp_wp_target_url') != '') && ($full_site_cookie !="true")){
//check for a mobile browser and redirect the user
}
}
一時的な解決策は、モバイルサイトのクッキーを確認してからリダイレクトすることですが、これを行うにはより良い方法があります。
setcookie
関数は、次のページのロード時に送信されるHTTP cookieヘッダーを準備します。 $_COOKIE
スーパーグローバルが自動的に更新されないのはそのためです。
現在のリクエストで使用するために$_COOKIE
を手動で更新することができます。これをsetcookie()
行の下に置くだけです。
$_COOKIE['mobileesp_wp_full_site'] = 'true';
ところで、私は'true'
のような文字列ではなく、整数(0
と1
)だけで作業することを望みます。そうすれば、それらを単に! empty($_GET['view_full_site'])
のようにチェックすることができます。