さて、私は Cookie を使用して、さまざまなデバイス幅でモバイル コンテンツを生成しています。基本的に、このサイトはデスクトップでは一方向に表示され、モバイルでは 800px 未満の投稿コンテンツが表示されます。
1 つの小さな問題を除いて、すべてが完全に機能しています。モバイル ブラウザでデスクトップ ビューに切り替えると、iOS Safari と Android HTC Internet でのみ発生しているようで、コンテンツに Cookie が適用されず、生成されません。私はウェブ上で数多くの検索や提案を試みましたが、何も見つかりませんでした. どんな助けでも素晴らしいでしょう。
ヘッダーのスクリプト:
<script type="text/javascript">var mql = window.matchMedia("screen and (max-width: 800px)")
if (mql.matches){ var setCookie = function setCookie(name) {
document.cookie = 'distanceMobile=1; expires=0; path=/';
}
setCookie('distanceMobile');}
else{
// do something else
}</script>
<script type="text/javascript">
var mql = window.matchMedia("screen and (min-width: 801px)")
if (mql.matches){ var delete_cookie = function delete_cookie(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
delete_cookie('distanceMobile');}
else{
// do something else
}
</script>
テンプレートの PHP:
<?php
// Template Name: Full Width Home
get_header("home");
if ( wp_is_mobile($_COOKIE['distanceMobile']) ) {
echo '<style scoped> @media screen and (min-width: 801px){
#content {display: none !important;}
}</style>';
get_template_part('custom-home-content');
//echo "Hello!";
} elseif ($_COOKIE['distanceMobile']) {
get_template_part('custom-home-content');
//echo "Hello!";
} else {
// do nada
}
get_footer(); ?>
これは、私が取り組んでいるサイトへのリンクです。ブラウザ ウィンドウを 800 未満に縮小すると、コンテンツを印刷するために 2 回すばやく更新する必要があります。それ以外の場合は、デバイスにアクセスすると、正常に読み込まれます。
繰り返しますが、これまでに複数のことを試しました。私はすべての matchMedia を取り除いてみましたが、アラートを実行しようとしました。デスクトップ ビューをクリックすると、モバイル ブラウザで動作しないようです。
よろしく。
* PHP ファイルを更新して、モバイルが認識され、Cookie が発行されるかどうかをテストします* モバイル ブラウザーのデスクトップ ビューで SPM を返します
<?php
// Template Name: Full Width Home
get_header("home");if ( wp_is_mobile() ) {
get_template_part('custom-home-content');
//echo "Hello!";
}
elseif ($_COOKIE['distanceMobile']) {
get_template_part('custom-home-content');
//echo "Hello!";
}
else {
echo "SPM JR.";
}
get_footer(); ?>