- Custom DataBase Tables
- CDBT Version 2.x
- フィルターフック一覧
- cdbt_find_concat_columns
cdbt_find_concat_columns
(CDBT 2.1.33)
cdbt_find_concat_columnsデータの検索時にデータ結合処理を実行するか否かをフィルターします
Description
bool cdbt_find_concat_columns ( bool $is_concat [, string $table_name ] )データの検索時にデータ結合処理を実行するか否かをフィルターします。このフィルターでデータ結合検索を有効にすると、別々のカラムに格納されているデータを連結して検索対象に含めることができます。
Notice:例えば、「FirstName」と「LastName」のカラムのデータを結合して、フルネームでの検索を行いたい場合などに使用します。このフィルターはバージョン2.1.33以降のプラグインで利用できます。
Parameters
- is_concat
- 検索時のデータ結合処理を行う場合は TRUE を指定します。初期値は FALSE です。
- table_name
- フィルターするテーブル名を参照できます。
History
| バージョン | 内容 |
|---|---|
| 2.1.33 | 新規追加 |
Example
例1 データ結合検索を有効化します。
<?php
add_filter( 'cdbt_find_concat_columns', function( $is_concat, $table_name ){ return $table_name == 'prefix_table_name' ? true : $is_concat; }, 10, 2 );
Notice:バージョン2.1.33ではデータ結合検索を有効化しても、初期のデータの区切り文字が NULL 文字のため、検索キーワードをマッチさせるために下記のように「cdbt_crud_find_data_sql」フィルターも併せて利用する必要があります。バージョン2.1.34以降では、区切り文字を定義するフィルター「cdbt_find_concat_separator」と検索キーワードをSQLクエリ用に最適化するフィルター「cdbt_find_concat_value」が利用できます。
例2 半角空白によるデータ区切りキーワードをフィルターします(バージョン2.1.33まで)。
add_filter( 'cdbt_find_concat_columns', function( $is_concat, $table_name ){ return $table_name == 'prefix_table_name' ? true : $is_concat; }, 10, 2 );
function my_custom_search_query( $sql, $table_name, $queries ) {
if ( $table_name == 'prefix_table_name' ) {
$_new_where_clause = str_replace( 'CHAR(0)', "' '", $queries[1] );
$sql = str_replace( $queries[1], $_new_where_clause, $sql );
}
return $sql;
}
add_filter( 'cdbt_crud_find_data_sql', 'my_custom_search_query', 10, 3 );
Hook Point
- find_data()指定されたキーワードを含むデータを検索します
Reference
Related Hooks
- cdbt_crud_find_data_sqlfind_data メソッドで発行されたSQLクエリをフィルターします
- cdbt_find_concat_separatorデータ結合検索時の区切り文字の定義をフィルターします
- cdbt_find_concat_valueデータ結合検索時の検索キーワードをフィルターします