これについてしばらく考えた後、私はこの問題(の一部)に(部分的に)アプローチする2つの方法を提供する必要があります。それでも:@Ottoからの回答を注意深く読んでください。それは理由のために多くの詳細を持っています。
Javascriptの検出
添付ファイルの「デフォルトの画像を追加する方法」についての回答を書きました。フィルタコールバックを変更して、通常の画像やサムネイルの代わりに、常に単純なpng / gif(背景色のみ)を追加できます。これは、ユーザーエージェント/ブラウザが最初のロード時にキャッシュし、画像への呼び出しを相互に挿入するだけの非常に小さな画像(おそらく1kB未満-救助のためにsmushIt)を提供するのに役立ちます。
次に、単純に表示ピクセル密度を…
var dpr = 1;
if ( window.devicePixelRatio !== undefined )
dpr = window.devicePixelRatio;
if ( dpr > 1 ) {
// High pixel density pixel displays
}
…DOMが完全にロードされたら画像を交換します。
CSSルーティング
さまざまなピクセル密度のディスプレイにスタイルシートを追加するのはそれほど難しくありません。
// For default/low density pixel displays only:
wp_enqueue_style(
'low_density_styles'
,trailingslashit( get_stylesheet_directory_uri() ).'low_density.css'
,array()
,filemtime( locate_template( 'low_density.css' ) )
,'screen'
);
// For high density pixel displays only:
$media = 'only screen and (min--moz-device-pixel-ratio: 2), ';
$media .= 'only screen and (-o-min-device-pixel-ratio: 2/1), ';
$media .= 'only screen and (-webkit-min-device-pixel-ratio: 2), ';
$media .= 'only screen and (min-device-pixel-ratio: 2)';
wp_enqueue_style(
'high_density_styles'
,trailingslashit( get_stylesheet_directory_uri() ).'high_density.css'
,array()
,filemtime( locate_template( 'high_density.css' ) )
,$media
);
これで、デフォルトの画像(ヘッダー、ロゴなど)に対して、高密度/低密度の画像を簡単に切り替えることができます。これは、投稿タイプの添付ファイルでは機能しません(ここでも、@ Ottoの回答を参照してください)。