wp_is_mobile()の適切な使用法?


18

私はレスポンシブテーマを開発しました。それをwordpress.orgに提出したいと思います。それを提出する前に私が使用したいwp_is_mobile()私のテーマではなく、に従って関数リファレンス/ WPはモバイルでそれが悪い考え、それはこのだと言うので:

タブレットはモバイルデバイスと見なされるため、これは特に携帯電話を検出しないことに注意してください。いくつかの便利な代替手段については、プラグインエリアを確認してください。また、テーマには使用しないでください。

したがって、テーマの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)のようなキャッシングプラグインを使用すると、関数が台無しになります(実行に失敗したか、誤検知を返します)?

お時間をいただきありがとうございます...


1
彼らは、私たちにはこの機能があると言っていますが、それを使用しないでください。それは良くないからです-まったく皮肉です。あなたのテーマがそれを使用することを拒否するかどうかはわかりませんが、もしそうなら、それは皮肉を最大に増やすでしょう。結局、これはWP関数であり、非推奨ではありません。
ニコライ

3
本当の質問は、モバイル/デスクトップクラスを追加する理由です。
TheDeadMedic

1
@TheDeadMedicの言うことは本当です。たとえば、CSSメディアクエリで作業できます。
ニコライ

1
wp_is_mobile()本当に冗談に過ぎず、本当に信頼できません。エンドユーザーが操作できるユーザー側に依存します。あなたは、モバイルユーザーが大量に彼らそれのようなまたはあなたがそれを望んでいないかどうかをデスクトップコンテンツを盛り付けされますので、あなたの機能は、例10%以上に失敗することを知っておく必要があります
ピーター・グーセン

4
そこにあり、query_posts()と同じようにひどいです。
Dejo Dekic

回答:


31

非常に素人の用語でwp_is_mobile()は、テーマをスタイリングするためではありません。

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

WordPressの使用方法: WordPressは、CSSのスタイル設定やCSSの追加に使用しません。WordPressはこれを使用して、サイズと名前に関係なくモバイルデバイスのみに存在するものを追加または操作します。たとえば、タッチスクリプトの追加、ビューポートの追加、管理ヘッダーのモバイルクラス、モバイルボタンの追加などです。

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

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


1

wp_is_mobile()に関連しているHTTP USER AGENT、それは画面サイズに関連していない

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

$_SERVER['HTTP_USER_AGENT']モバイル(AndroidまたはBlackBerryなど..)が含まれている場合、

次にwp_is_mobile戻ります-true(モバイルデバイスとして検出)、そうでない場合は戻りますfalse

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

以下のためのより多くの情報のチェック機能のソースコード

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.