概要
the_search_query
フィルタは、WordPressにおける検索キーフレーズをフィルタリングに利用される機能です。このフィルタは、検索フォームに入力されたキーワードやフレーズをプラグインやテーマが変換、操作、または検証できるようにするために広く使用されます。具体的には、次のような目的で使用されることが多いです。
- 検索キーフレーズの正規化(例:特殊文字の削除)
- 検索キーワードのマスキング(プライバシーのため)
- 特定のキーワードの追加または変更
- ユーザーのリクエストに基づくコンテンツのフィルタリング
- トップセール商品などの特定項目を優先するためのキーワード変換
- 検索機能のカスタマイズ(特定条件付き)
- スペルチェックやシノニム検索の実装
- 検索キーフレーズのロギングや分析
構文
add_filter( 'the_search_query', 'your_function_name' );
パラメータ
string $search_query
:元の検索クエリ。
戻り値
string
:フィルタリング後の検索クエリ。
関連する関数
使用可能なバージョン
- 初めて導入されたバージョン: 2.1.0
コアファイルのパス
wp-includes/query.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
サンプルコード
以下に、the_search_query
フィルタのサンプルコードを示します。
サンプルコード 1
add_filter( 'the_search_query', 'custom_search_query' );
function custom_search_query( $search_query ) {
return sanitize_text_field( $search_query );
}
このコードは、検索クエリをサニタイズして、特殊文字や不正な文字を除去します。
サンプルコード 2
add_filter( 'the_search_query', 'append_custom_keyword' );
function append_custom_keyword( $search_query ) {
return $search_query . ' +specialkeyword';
}
このコードは、元の検索クエリに特定のキーワードを追加します。
サンプルコード 3
add_filter( 'the_search_query', 'remove_special_chars' );
function remove_special_chars( $search_query ) {
return preg_replace('/[^a-zA-Z0-9s]/', '', $search_query);
}
このコードは、アルファベットと数字、スペース以外の文字を削除します。
サンプルコード 4
add_filter( 'the_search_query', 'log_search_query' );
function log_search_query( $search_query ) {
error_log( 'Search Query: ' . $search_query );
return $search_query;
}
このコードは、検索クエリをログに記録します。
サンプルコード 5
add_filter( 'the_search_query', 'replace_synonyms' );
function replace_synonyms( $search_query ) {
if (strpos($search_query, 'iphone') !== false) {
return str_replace('iphone', 'smartphone', $search_query);
}
return $search_query;
}
このコードは、「iphone」という単語を「smartphone」に置換します。