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