0

さて、私は 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(); ?>
4

0 に答える 0