私は音楽プレーヤーを提供するためにプラグインを使うワードプレスサイトを持っています。このプラグインは、ユーザーがサイトを閲覧している間、音楽を再生し続けるためにフレームを使用します。
モバイル機器はフレームが原因でこれに問題があります。プラグインを無効にすると、モバイルデバイスはサイトを正常に表示します。
モバイルデバイスでサイトを閲覧している人はだれでもこのプラグインを無効にしたいです。
理想的には、コードを記述せずに、既存のものを使用してこれを実行したいと思います。
ありがとうございます。
この質問は、 FAQ への新たなコミットされた変更に従って、WPSEの範囲内(とにかく)の境界線です。
「コード付き」で行う場合、最も簡単な方法は、 cssメディアクエリ を使用して、そのクラスまたはIDでフレーム(または親要素)を非表示にすることです。
完全を期すために、モバイルデバイスをチェックしようとする WPコア関数 があります - しかし はユーザエージェントスニッフィング であり、したがって信頼性に関する限り信頼されるべきではありません(使用が推奨されない数少ないコア機能の1つ、imho)。
完全を期すためだけに、 deactivate_plugins()
コア関数もあります。また、 activate_plugins()
というコンパニオンもあります。 deactivate_plugins()
は$silent
(boolean)パラメータを持っています。したがって、あなたはあなたのサイトがどのデバイスにロードされているかという条件で実行することができます、しかしそれは1つのために非常に効率的ではありません。
また、モバイルデバイスとは何ですか?
数世代のスマートフォン、タブレット、ネットブック、ラップトップ、デスクトップ、TVスクリーン、そして多種多様なピクセル密度( "Retina"スクリーンは96ppiを超える最初のものではなかった...)。
- >さまざまなデバイス用に設計できる唯一の信頼性の高い方法は、画面サイズとピクセル密度を使用することです。そして、それはあなたがサーバー側で集めることができない情報です。また、できないので、それに基づいてプラグインを無効にすることはできません。
だからここで私たちはcssかjsにいます。
いずれにせよ、メディアの質問はそれです。
プラグインを無効にしないでください。代わりにワイドビューポートでのみiframeをロードするように書き換えてください。これがどのように実行できるかを示す サンプルコード です。
Johannesが説明したように、サーバー側でモバイルデバイスを検出する方法はありません。また、モバイルとして認識されない他のデバイスよりも優れた解像度とインターネット接続を備えているモバイルデバイスもあります。
WPTouch、またはそのプラグインのProバージョンのいずれかを使用して、モバイルユーザー用のプラグインを無効にできると私は95%の確信を持っています。しかし、プラグインを無効にしても通常のサイトを表示することしかできないのかどうか、それともモバイルテーマを使用するように強制されるのかどうかはわかりません。
[編集]
無料版のプラグイン文書とコードから読むと:
制限モード
他のプラグインがWPtouchのヘッダーとフッターにスクリプトをロードすることを禁止します。非互換性を修正してWPtouchをスピードアップすることがあります。
このモードでは、モバイルバージョンを表示するときにwp_head()
とwp_footer()
が削除されます。そしてそれは他のスクリプトのロードをブロックしますが、他のプラグインの振る舞いからすべてをブロックするわけではありません。