→質問文の例を挙げて説明致しますと、「東京 カフェ」のように、スペースありの検索結果に合わせたいです。
連続している文字列を意味に合わせてスペースで区切って、検索したいということですね。
残念ながら文章を「分かち書き」する機能は、WordPress にはありません。
そのため、外部の構文解析API ( Rosette Base Linguistics / 日本語形態素解析 - Yahoo!デベロッパーネットワーク / 形態素解析API - gooラボ 等)を利用するか 形態素解析エンジン( MeCab / ChaSen / JUMAN 等)をサーバーに導入する必要があります。
一応、WordPress 内で動作実績のある php-mecab と NEologd 辞書 を使って、「分かち書き」対応して検索するとすればこんな感じでしょうか。
( WordPress のサーバーに MeCab / php-MeCab / NEologd 辞書のインストールが必要です。 )
function wakachi_search_tt283326($query) {
if( $query->is_search && $query->is_main_query() ) {
$searchstr = ($query->query)['s'];
// Mecab 処理
$options = array(
'-Owakati',
'-d', '/usr/lib64/mecab/dic/mecab-ipadic-neologd'
);
$mecab = new MeCab_Tagger($options);
$nodes = $mecab->parseToNode($searchstr);
$query->set( 's' , $nodes );
}
}
add_filter('pre_get_posts','wakachi_search_tt283326', 10, 2);
通常の WordPress 検索では、東京 カフェ
で、検索すると「東京」「カフェ」で検索していると思います。
上記では、東京カフェ
と続けて入力されている場合も MeCab で分かち書きにして、検索文字列を 東京 カフェ
に置き換えています。
そのため、検索文字列を東京 カフェ
で与えた場合と同じように「東京」「カフェ」に区切って検索可能と思います。
このようなイメージで良いでしょうか。