概要
wp_image_matches_ratioフィルタは、2つの幅と高さが同じアスペクト比か調べるために使用されるフィルタです。このフィルタは、画像の比率を確認し、特定の条件に基づいて処理を変更する際に役立ちます。以下は、このフィルタがよく使われる機能の一例です:
- 画像サイズの検証
- レスポンシブデザインの調整
- 画像のサムネイル生成
- 特定のプロポーションへの強制
- ギャラリーやスライダーでの画像表示の最適化
- フロントエンドの画像表示調整
- スタイルシートやスクリプトへのインラインスタイル追加
- その他のプラグインやテーマの独自ニーズ対応
構文
add_filter('wp_image_matches_ratio', 'your_function_name', 10, 3);
パラメータ
$matches(bool): 画像が指定した比率に合致するかどうかの結果。$width(int): 画像の幅。$height(int): 画像の高さ。
戻り値
- (bool): 画像が指定したアスペクト比に一致していれば
true、そうでなければfalse。
関連する関数
使用可能なバージョン
このフィルタはWordPress 4.0以降で使用可能です。
コアファイルのパス
wp-includes/media.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1
add_filter('wp_image_matches_ratio', 'check_image_ratio', 10, 3);
function check_image_ratio($matches, $width, $height) {
return ($width / $height) === (16 / 9); // 16:9の比率で確認
}
このサンプルコードは、画像が16:9のアスペクト比に一致するかどうかを確認します。
サンプルコード2
add_filter('wp_image_matches_ratio', 'limit_image_aspect_ratio', 10, 3);
function limit_image_aspect_ratio($matches, $width, $height) {
return ($width >= $height); // 横長の画像のみ許可
}
このサンプルコードは、縦長の画像を除外し、横長の画像のみを受け入れます。
サンプルコード3
add_filter('wp_image_matches_ratio', 'force_ratio_check', 10, 3);
function force_ratio_check($matches, $width, $height) {
return in_array($width / $height, [1, 4/3, 16/9]); // 固定比率へ強制
}
このサンプルコードは、画像のアスペクト比を1:1、4:3、16:9のいずれかに制限します。
サンプルコード4
add_filter('wp_image_matches_ratio', 'responsive_image_ratio', 10, 3);
function responsive_image_ratio($matches, $width, $height) {
return ($matches || $width < $height); // アスペクト比不一致でも小さい画像は許可
}
このサンプルコードは、指定したアスペクト比に合致していなくても、幅が高さより小さい場合は許可します。
サンプルコード5
add_filter('wp_image_matches_ratio', 'custom_image_ratio_validation', 10, 3);
function custom_image_ratio_validation($matches, $width, $height) {
if ($width > 1000 && $height > 500) {
return true; // 幅が1000px、高さが500px以上の画像を許可
}
return false;
}
このサンプルコードは、幅が1000px以上高さが500px以上の画像に対してアスペクト比の検証を行います。
これらのサンプルコードを参考に、特定のニーズに合わせてwp_image_matches_ratioフィルタを利用できます。