WordPressでカスタムフィールドを対象にした検索機能を実装中です。
全角や半角が勝手に変換され、相互に検索にひっかかることを不思議に思いました。
なぜ、どのような変換がされるのでしょうか?
どこかに変換のコードがあるのでしょうが見つけられません。
ご存知の方がいらっしゃいましたら教えて頂けませんでしょうか。
###例
たとえば下記はWP_Query
のmeta_query
実装コードです。
検索ワードを「りんご バナナ」とした例ですが、検索対象のカスタムフィールドである「search_fields」の値が「バナナ」の記事も検索にひっかかってくれます。
この全角や半角が、どこで変換されているのか知りたいです。
さらに試したところ、「ばなな」でも「バナナ」の記事がひっかかりました。
嬉しい誤算ではありますが、どこでどんな変換がされているのかが気になります。
// WP_Query function get_the_query(){ $args = []; $search_arr = ['りんご','バナナ']; $args['meta_query'][] = get_meta_query_search( $search_arr, 'and', 'search_fields' ); $the_query = new WP_Query( $args ); return $the_query; } // 検索 function get_meta_query_search( $search_arr, $relation, $meta_key ){ if( $relation=='and' ){ if( count($search_arr) > 1 ){ $meta_query = ['relation'=>'AND']; } foreach( $search_arr as $search ){ $meta_query[] = [ 'key' => $meta_key, 'value' => $search, 'compare' => 'LIKE', 'type' => 'CHAR' ]; } } return $meta_query; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/17 09:51