概要
wp_fuzzy_number_match
フィルタは、2つの数値がほぼ同じか調べる際に使用されます。このフィルタは、特に数値の比較が緩やかである必要がある状況で便利です。以下は、このフィルタが実装される際によく使われる機能の例です:
- ユーザー入力の近似値をチェック
- プラグイン設定のバージョン管理
- 異なるデータソースの数値を比較
- 特定の価格範囲のマッチング
- 検索アルゴリズムの最適化
- ユーザー評価の計算
- フォームバリデーションの強化
- カスタムクエリのフィルタリング
構文は次の通りです:
apply_filters( 'wp_fuzzy_number_match', $value1, $value2, $threshold );
パラメータ
$value1
(float): 比較対象の最初の数値。$value2
(float): 比較対象の二番目の数値。$threshold
(float): ほぼ同じと見なすための許容誤差の値。
戻り値
- 比較結果を示すboolean値。$value1 と $value2 がいる
threshold
内であれば true、それ以外の場合は false を返します。
関連する関数
関連する関数は次のリンクよりご覧ください:wp_fuzzy_number_match
ワードプレスのバージョン
このフィルタは、WordPress 4.5以降で使用可能です。
コアファイルのパス
このフィルタは、wp-includes/plugin.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 |
非推奨または削除されたバージョン
wp_fuzzy_number_match
フィルタは、特定のバージョンで非推奨または削除されていません。
サンプルコード
サンプルコード 1
add_filter( 'wp_fuzzy_number_match', 'custom_fuzzy_number_match', 10, 3 );
function custom_fuzzy_number_match( $is_match, $value1, $value2, $threshold ) {
// 近似値の間の差が十分小さいかどうかを確認
return abs( $value1 - $value2 ) < $threshold;
}
このコードは、2つの数値が指定されたしきい値内でほぼ同じであるかどうかを判断するカスタム関数を追加します。
サンプルコード 2
add_filter( 'wp_fuzzy_number_match', 'my_custom_match', 10, 3 );
function my_custom_match( $is_match, $value1, $value2, $threshold ) {
// 10%の近似一致を許可
return abs( $value1 - $value2 ) < ($threshold * 0.1 * $value1);
}
このサンプルコードは、最初の数値に基づいて10%の誤差を許容します。
サンプルコード 3
add_filter( 'wp_fuzzy_number_match', 'check_price_similarity', 10, 3 );
function check_price_similarity( $is_match, $price1, $price2, $threshold ) {
// 価格差がしきい値内かどうかを確認
return ($price1 > $price2 - $threshold) && ($price1 < $price2 + $threshold);
}
このコードは、商品の価格が指定されたしきい値内でほぼ同じであるかをチェックします。
サンプルコード 4
add_filter( 'wp_fuzzy_number_match', 'match_with_custom_threshold', 10, 3 );
function match_with_custom_threshold( $is_match, $num1, $num2, $threshold ) {
// 固定のしきい値を利用して一致を確認
return abs( $num1 - $num2 ) < 5; // 固定値5
}
このサンプルでは、特定の固定されたしきい値(5)で数値の一致を判断します。
サンプルコード 5
add_filter( 'wp_fuzzy_number_match', 'dynamic_threshold_match', 10, 3 );
function dynamic_threshold_match( $is_match, $value1, $value2, $threshold ) {
// 動的なしきい値を設定
$dynamic_threshold = max(0.1 * abs($value1), 1);
return abs( $value1 - $value2 ) < $dynamic_threshold;
}
このコードは、値に基づいて動的なしきい値を計算し、その範囲内で一致を確認します。