メディアクエリが「print」のときに、画像遅延読込みを無効にしたいです。
しかし、functions.php からメディアクエリを取得する方法がわからないので、とりあえず、front_page だけで画像遅延読込みを有効にするようにしてみました。
/** WordPress デフォルトの画像遅延表示機能を停止する 2023-06-29 */
function disable_img_lazy_load (){
wp_reset_query();
if (! is_front_page() ) {
add_filter( 'wp_lazy_loading_enabled', '__return_false' );
add_filter('wp_img_tag_add_decoding_attr', '__return_false');
}
};
add_action('get_header', 'disable_img_lazy_load');
add_actionのタイミングが難しかったです。
正しいタイミングでないと、「is_front_page」の判定が成立しなくなるからです。
pages – Why isn’t is_page working when I put it in the functions.php file? – WordPress Development Stack Exchange
get_header
should work if you want to leave it infunctions.php
functions.php
は、どのページが読み込まれているかを知る前に処理されます。
1. 考察
メディアクエリではないですが、ユーザーエージェントなどのブラウザ環境変数を取得する方法はあります。
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
?>
//スマホ
スタイルシートを追加するなら、wp_enqueue_style でメディアクエリもセットすることができます。
<?php wp_enqueue_style( $handle, $src, $deps, $ver, $media ); ?>
こちらもどうぞ。
QRコードを読み込むと、関連記事を確認できます。