- Custom DataBase Tables
- CDBT Version 2.x
- フィルターフック一覧
- cdbt_find_concat_value
cdbt_find_concat_value
(CDBT 2.1.34)
cdbt_find_concat_valueデータ結合検索時の検索キーワードをフィルターします
Description
string cdbt_find_concat_value ( string $search_value [, string $value, string $table_name ] )データ結合検索時の検索キーワードをフィルターします。ショートコードからのデータ結合検索が有効時に、検索キーワードをSQLクエリ用に最適化することができます。
Notice:このフィルターはバージョン2.1.34以降のプラグインで利用できます。
Parameters
- search_value
- データ検索用のSQLクエリに最適化された検索文字列。
- value
- ショートコードの検索ボックスに指定された検索キーワードを参照できます。
- table_name
- フィルターするテーブル名を参照できます。
History
| バージョン | 内容 |
|---|---|
| 2.1.34 | 新規追加 |
Example
指定のテーブルに対してデータ結合検索を実装する(バージョン 2.1.34 以降用)。
<?php
add_filter( 'cdbt_find_concat_columns', function( $is_concat, $table_name ){ return $table_name == 'bigdata_test' ? true : $is_concat; }, 10, 2 );
add_filter( 'cdbt_find_concat_separator', function( $concat_separator, $table_name ){ return $table_name == 'bigdata_test' ? "' '" : $concat_separator; }, 10, 2 );
add_filter( 'cdbt_find_concat_value', 'my_custom_find_concat_value', 10, 3 );
function my_custom_find_concat_value( $like_value, $value, $table_name ) {
if ( $table_name == 'bigdata_test' ) {
$concat_separator = ' '; // Defined value at the "cdbt_find_concat_separator" filter
$_values = explode( $concat_separator, preg_replace( '/\s{2,}/', '', trim( $value ) ) );
$like_value = "CONCAT('%%". implode( "', '$concat_separator', '", $_values ) ."%%')";
}
return $like_value;
}
Hook Point
- find_data()指定されたキーワードを含むデータを検索します
Reference
Related Hooks
- cdbt_find_concat_columnsデータの検索時にデータ結合処理を実行するか否かをフィルターします
- cdbt_find_concat_separatorデータ結合検索時の区切り文字の定義をフィルターします