【スポンサーリンク】

【未解決】印刷用に表示したときだけPHPの処理したいけど…(メディアクエリとPHP)

この項目は、随時追記します。なにかのヒントになれば嬉しいです。

メディアクエリが「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」の判定が成立しなくなるからです。

get_header should work if you want to leave it in functions.php

pages – Why isn’t is_page working when I put it in the functions.php file? – WordPress Development Stack Exchange

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コードを読み込むと、関連記事を確認できます。

【未解決】印刷用に表示したときだけPHPの処理したいけど…(メディアクエリとPHP)
【スポンサーリンク】
タイトルとURLをコピーしました