searchwp\tokens\regex_patterns
4.0.0以降
SearchWPは、トークン化によって検索時の有用性が低下するのを防ぐために、特定の文字列をそのまま保持する正規表現パターンのマッチングを検索します。デフォルトでは、SKU、日付、イニシャル、関数名、バージョン番号などの文字列を抽出するための一般的な正規表現パターンが多数用意されています。
このフックを使用して独自のパターンマッチを追加できます。
注意: パターンは厳密さの順序で指定してください。より厳密なものを先に指定します。
デフォルトのパターンは次のとおりです。
| [ | |
| // Function names, including namespaced function names. | |
| "/([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*)\(/is", | |
| // Date formats. | |
| '/\b([0-9]{4}-[0-9]{1,2}-[0-9]{1,2})\b/is', // YYYY-MM-DD | |
| '/\b([0-9]{1,2}-[0-9]{1,2}-[0-9]{4})\b/is', // MM-DD-YYYY | |
| '/\b([0-9]{4}\\/[0-9]{1,2}\\/[0-9]{1,2})\b/is', // YYYY/MM/DD | |
| '/\b([0-9]{1,2}\\/[0-9]{1,2}\\/[0-9]{4})\b/is', // MM/DD/YYYY | |
| // IP addresses. | |
| '/\b(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\b/is', // IPv4. | |
| // Initials. | |
| "/\\b((?:[A-Za-z]\\.\\s{0,1})+)/isu", | |
| // Version numbers: 1.0 or 1.0.4 or 1.0.5b1. | |
| '/\b([a-z0-9]+(?:\\.[a-z0-9]+)+)\b/is', | |
| // Serial numbers. | |
| '/(?=\S*[\-\_])([[:alnum:]\-\_]+)/ius', // Hyphen/underscore separator. | |
| // Strings followed by digits and maybe strings. | |
| // e.g. `System 1` or `System 12ab-cd12` | |
| '/([A-Za-z0-9]{1,}\s[0-9]{1,}[A-Za-z0-9]*)/iu', | |
| // Strings of digits. | |
| "/\\b(\\d{1,})\\b/is", | |
| // e.g. M&M, M & M. | |
| "/\\b([[:alnum:]]+\\s?(?:&\\s?[[:alnum:]]+)+)\b/isu", | |
| // Strings with apostraphe(s). Consider both standard and curly. | |
| '/\b([a-z0-9]*[\'|’][a-z0-9]*)\b/isu' | |
| ] |
パラメータ
| タイプ | パラメータ | デフォルト | 提供開始 |
|---|---|---|---|
| 文字列{} | $patterns |
上記のgistを参照 | 4.0.0 |
例
すべてのフックはカスタムのSearchWP カスタマイズプラグインに追加する必要があります。
カスタム正規表現パターンを追加
| <?php | |
| // Add custom regular expression pattern to SearchWP. | |
| add_filter( 'searchwp\tokens\regex_patterns', function( $patterns ) { | |
| $my_patterns = [ | |
| "/([0-9]{1,2}\\/[0-9]{1,2})/is", // Retain measurement details. | |
| ]; | |
| // We want our pattern to be considered top priority. | |
| return array_merge( $my_patterns, $patterns ); | |
| } ); |

