サポート » 使い方全般 » ユーザーエージェントを使用したheader.phpでの切り替え

  • 解決済 mtbook123

    (@mtbook123)


    スマホサイトのフッターに「PC版を表示」というボタンがあり、
    ボタンを押した際にセッションを使用してボタンが押されたら
    「スマホから見ているけれどもPC版を表示させたい」というのが今回実装したい機能です。

    現在、header.php内でユーザーエージェント(PC / スマホ)を使って
    読み込むヘッダーを分けています。

    header.php内に
    PCではheader-pc.php
    スマホではheader-sp.php
    といった感じで条件分岐しております。
    こちらの機能は意図したとおりに動作しております。

    スマホからボタンを押しても、$_SESSION[‘pcsite’]に値が入らず、思うような結果で表示させることが出来ないため皆様のお力をお借りしたいと思い、投稿しました。

    どうぞよろしくお願い申し上げます。

    header.php

    session_start();
    $ua = $_SERVER['HTTP_USER_AGENT'];
    
    // pc版を表示ボタンが押されたらheader-pc.phpを読み込む
    if(isset($_SESSION['pcsite'])){ get_template_part('header-pc');} 
    
    // UAでの条件分岐
    if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
      // スマホ版ヘッダー
      get_template_part('header-sp');
    } else {
      // PC版ヘッダー
      get_template_part('header-pc');
    }

    footer.php

    <form action="<?php echo bloginfo('url'); ?>" method="post">
    	<input type="submit" id="pcsite" name="pcsite" value="pcsite" >PC版を表示
    </form>

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    そもそもセッションへの保存処理がない気がします。

    jim912さん

    ご回答ありがとうございます。
    まさにその通りでした…。

    無事に実装することができました!!
    これで3日程悩んでいたなんて…。
    基本からやり直してきます!

    普通にスマホからPCをみる作業ですよね?

    http://web.showjin.me/pc_smartphone_change.html

    このやり方ではだめですか?

    間違って同じ内容を投稿してしまったので内容をこのように変更しました。
    大変失礼致しました。

    なぜか同じ投稿が…

    0708さん
    ご回答ありがとうございます!
    spフォルダ等にはリダイレクトせずに
    CSSのみでスタイル調整したかったので
    ヘッターの切り替えというような方法を取りました。

    次回以降、ご教示頂いたやり方も参考にしてみます!
    ありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「ユーザーエージェントを使用したheader.phpでの切り替え」には新たに返信することはできません。