サポート » 使い方全般 » WPtouchを使ったサイトでPCからのアクセスを別のサイトへリダイレクトする

  • すでに別ドメインでPC用のサイトがあるのですが、スマホサイトを作成したいのでwordpressにWPtouchをインストールして対応しようと思っています。
    その場合、そのスマホ用のURLにPCからのアクセスがあった場合は、既存のサイトへリダイレクトしたいのですがどうしたらよいでしょうか。

    PC http://www.×××.jp
    スマホサイト用は上記のドメインとは別のドメインで作成

    アドバイスよろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • こんにちは

    試していませんが、

    WordPressには、ブラウザ検出用のグローバル変数が用意されています

    http://codex.wordpress.org/Global_Variables

    ので、これで条件を分岐して

    PHPの header関数

    http://php.net/manual/ja/function.header.php

    で処理できるような気がします

    モデレーター jim912

    (@jim912)

    sayoko matuさん、nobitaさん、こんにちは。

    WordPressのグローバル変数を利用だと、ブラウザがsafariでmobileという文字列がユーザーエージェントに含まれているという簡単な条件なので、WPtouchの判別とは差がでてしまいます。

    WPtouchが有効化されていれば、bnc_is_iphoneという関数が使えるので、これを利用した方が正確性が増します。
    header関数でも問題ありませんが、wp_redirect関数を憶えておくといいですね。

    実装方法ですが、

    • 管理画面ではない
    • bnc_is_iphone関数がある
    • bnc_is_iphoneの結果がfalseである

    という条件が成立する場合にPCサイトへのリダイレクトが行われるようにすれば大丈夫かと思います。

    トピック投稿者 sayoko-matu

    (@sayoko-matu)

    nobita様、jim912様

    お忙しいところ、素早い回答ありがとうございます!

    今回は、jim912様の方法をまず試してみますが、nobita様のおっしゃられた関数も知識として知っておいたほうが良いと思うので、あとで見てみます!

    本当にありがとうございます!
    (うまく行かなかったらまたアドバイスいただくかもしれませんが・・・)

    こんにちは

    jim912さん 正しい方法を教えていただき、ありがとうございます 

    sayoko matuさん jim912さんのご指摘が明らかに正しいので、おすすめします

    トピック投稿者 sayoko-matu

    (@sayoko-matu)

    jim912様

    先程はありがとうございました。

    度々申し訳ありません。

    ちょっと考えてやってみたのですが、まだうまく行っておりません。

    質問が2つあります。

    1 記述先はPC用のテーマのヘッダーなどでよいでしょうか。

    2  記述するコードはこんな感じかなと思って考えたのですが、エラーが出てPCでサイトが見れなくなってしまうので、違うようです。

    3つの条件のうち  !is_admin() || !function_exists(bnc_is_iphone()) だけで設定してもエラーが出ますので2番目の条件の記述がまずは問題なのかと思っています。単純に
    bnc_is_iphone() と記述した場合もエラーがでました。

    if ( !is_admin() || !function_exists(bnc_is_iphone()) || bnc_is_iphone==false ) {
    wp_redirect( ( ‘リダイレクト先のURL’, 301 ); exit;
    }

    お手すきのときにもう一度アドバイスいただければ有難く存じます。

    モデレーター jim912

    (@jim912)

    sayoko matuさん

    1.
    テーマのヘッダーの最初に書いても動くと思いますが、それまでには必要のない処理がたくさん行われてしまいます。functions.phpに書いて、initフックなどで実行させた方が良いです。

    2.
    ・function_existsのパラメーターは関数名なので、()をつけずにシングルクォートで囲って下さい。
    ・逆に次の条件は、関数の結果で判別するため、()が必要です。
    ・各条件を||で繋ぐとorとなるため、この場合だと管理画面などでもリダイレクトされてしまいます。全ての条件を満たす場合にリダイレクトすればよいので、&&で結合してください。
    また、ステータスコードは303の方が適切かもしれません。

    トピック投稿者 sayoko-matu

    (@sayoko-matu)

    jim912様

    お忙しいところ、本当にありがとうございます。
    まだ成功しておりませんが、知識不足なので調べながらもう少し頑張ってみます。

    できてもできなくても、また結果をこちらに報告させていただきます。
    本当にありがとうございます。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「WPtouchを使ったサイトでPCからのアクセスを別のサイトへリダイレクトする」には新たに返信することはできません。