WordPressで検索時の全角スペースを有効にする方法です。
この対処をしないと検索機能で全角スペースを利用したAND検索が利用できません。
と言いたいところですが、実はこれ大抵の人は最初から対応済みです。
何故ってWordPressには標準で[WP Multibyte Patch]ってプラグインが入ってるからです。
じゃあ、この記事いらないじゃん。
おいおい、初期インストールして知らんプラグインが入ってたら全部消すだろ。
消したんですか?
はい。何の躊躇もなく全部消しました。
WP Multibyte Patchって必須と書かれた記事が多いですが、実はこのプラグインは必須ではありません。
結論を言うと人によります。と言うことで、この記事は絶対プラグイン使わないマン向けの記事になります。
なお、WP Multibyte Patchの必要性ついては本題とズレるので語りません。
公式の説明を読んで僕は不要と思ったので未インストールです。
◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。
functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。 拡張用のfunctions.phpを新規作成する 最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成し...
コードを追加する
functions.phpとかに以下のコードを追加します。
// 検索の全角スペース対応
add_action('pre_get_posts', function ($query) {
if (is_admin() || !$query->is_main_query()) {
return;
}
if ($query->is_search) {
$s = $query->get('s');
$s = str_replace(' ', ' ', $s);
$query->set('s', $s);
}
});
参考サイト https://tatuking.com/wp-search-space/
仕組み
検索時の文字列から全角スペースを半角スペースに変換してます。
半角スペースは元から正常に動作するので、結果として全角スペースも動くようになります。
あとがき
適当に削除して何か起きたらその時に考えるやつ。
それいつか致命傷になりますよ。
この記事は参考になりましたか?
コメント