WordPressの検索結果から特定カテゴリーに分類された投稿を除外する方法をご紹介します。
例えば、カテゴリーAに分類されている投稿は、検索キーワードが含まれていても検索結果に表示させないといったことができます。
とある案件で今回のカスタマイズを行いました。
そのやり方を以下にシェアします。
特定カテゴリーに分類された投稿を検索結果から除外するカスタマイズ
カスタマイズは、functions.phpにコードを追記、環境に合わせてコードを調整します。
functions.phpにコードを追記する
functions.phpに以下のコードを記述してください。
function SearchExcludeCategoryFilter($query) {
if ($query->is_search) { $query->set('cat','投稿ID'); }
return $query;
}
add_filter('pre_get_posts','SearchExcludeCategoryFilter');
参考:【WordPress】検索結果から特定のカテゴリーを除外する方法
追記したコードを調整する
コードを追加したら、環境によってコードの内容を調整します。
上記のコードの中に【投稿ID】と書かれた箇所があります。
この部分を、検索結果から除外したいカテゴリーのカテゴリーIDに置き換えます。
カテゴリーIDの調べ方は、以下のコンテンツを参照してください。
WordPressの投稿IDやカテゴリーIDなど各種IDの調べ方
カテゴリーIDが1の場合、以下のように置き換えてやります。
投稿ID
↓
-1
登校IDの前に【-】を付けてやるのを忘れないようにしてください。
【-】がないと、正常に動作しません。
これで、検索ワードにヒットした投稿でも、カテゴリーAに分類されている場合は、検索結果に表示されなくなります。
除外対象のカテゴリーが複数ある場合
先ほどは、除外したいカテゴリーがひとつだけの場合で解説しました。
場合によっては、複数のカテゴリーを除外したいことがあるかと思います。
その場合は、以下のようにコードを調整してやります。
投稿ID
↓
-1, -2, -3
除外したいカテゴリーのIDを【,】で区切れば、複数のカテゴリーを除外することができます。
まとめ
WordPressの検索結果から特定カテゴリーに分類された投稿を除外する方法をご紹介しました。
- functions.phpにコードを追記する
- 環境に合わせてコードを調整する
上記の2ステップを踏むだけで、検索結果から特定カテゴリーに分類された投稿を除外することができます。
興味のある方は、5分ほど時間を割いてカスタマイズに挑戦してください。
コメントを残す