wordpressはサイト内検索ができます。複数キーワードの検索もできます。
「癒やし」と「くま」の2語を入力すると、「癒やし くま」となります。
これで検索すると、検索結果は0件となります。
区切り文字が全角スペースだと「癒やし くま」という1単語と認識してしまうのです。
半角スペースじゃないと複数単語で検索してくれないんです。
しかし、複数キーワードを入力する時、google検索で慣れ親しんだ全角スペースで区切ると思います。どうすれば、全角スペースを入力しても複数キーワードの検索ができるようになるのか?
function change_posts_per_page($query) {
if( is_admin() || ! $query->is_main_query() ){
return;
}
if ($query->is_search()) {
$query->set('post_type', 'post');
//全角スペースを半角スペースに
$s = $query->get( 's' );
$s = str_replace(' ',' ', $s );
$query->set( 's', $s );
}
}
add_action( 'pre_get_posts', 'change_posts_per_page' );
pre_get_postsアクションフックを利用して、検索した時にstr_replaceで文字列置換します。
コメント