web-dev-qa-db-ja.com

Wp_is_mobile()の正しい使い方は?

レスポンシブテーマを開発しました。 wordpress.org。それを送信する前に私は私のテーマでwp_is_mobile()を使いたいのですが、 関数リファレンス/ wpによるとモバイルです それはaです 悪いアイデア それはこれだと言うので:

タブレットはモバイルデバイスと見なされるため、これは携帯電話を特に検出しないことに注意してください。いくつかの役に立つ選択肢についてはPluginsエリアをチェックしてください。 テーマにも使用しないでください。

だから私はこのように私のテーマのfunctions.phpでそれを使用すると:

add_filter('body_class','mobile_theme_body_class');     
function mobile_theme_body_class( $classes ){

    if ( wp_is_mobile() ){
        $classes[] = 'mobile';
    }
    else{
        $classes[] = 'desktop';
    }
    return $classes;
}

私のテーマは拒否されますか?

サブ質問:

上記のコードのように自分の関数を使用し、(WP Super Cache)のようにCaching Pluginsを使用すると、関数がめちゃくちゃになってしまいます(実行に失敗したり、誤検出が返されたりします)

あなたの時間と答えてくれてありがとう...

17
Dejo Dekic

非常に素朴な言葉でwp_is_mobile()はあなたのテーマをスタイリングするためのものではありません。

どのように動作します: それはユーザーエージェント文字列内のデバイスのネイティブ名の一部と一致します。したがって、誰かが文字列を操作して誤った情報を送信した場合、それがどのデバイスであるかを検出できません。デスクトップにいない場合はtrueを返します。それ以外の場合はfalse

WordPressの使い方: WordPressはスタイルやCSSの追加には使用しません。 WordPressは、(サイズや名前に関係なく)モバイルデバイス上にのみ存在するものを追加または操作するためにそれを使用します。タッチスクリプトの追加、ビューポートの追加、管理ヘッダーのモバイルクラス、モバイルボタンの追加。

キャッシュの効果 :あなたがキャッシュプラグインを使っているのなら、それは役に立ちません。コードが毎回実行されるわけではないので、毎回同じ結果が得られます。

WordPressは主にバックエンドでそれを使用し、ほとんどすべてのキャッシングプラグインはバックエンドでのキャッシングを除外するか、またはログインユーザーのために言う。それでうまくいきます。

31
Sumit

wp_is_mobile()HTTP USER AGENTに関連しますが、画面サイズには関係ありません

wp_is_mobileは、$_SERVER['HTTP_USER_AGENT']に基づいてtrueまたはfalseを返します

$_SERVER['HTTP_USER_AGENT']にMobile(AndroidまたはBlackBerryなど)が含まれている場合、

wp_is_mobileが返す - true(モバイルデバイスとして検出される)、そうでない場合はfalseを返す

簡単な使用例 - リンクを作成するには、モバイルアプリまたはWebページに移動します。

詳細情報 チェック機能のソースコード

1
bhv