質問: Wordpressの検索結果から、特定のカスタム投稿タイプ(投稿タイプスラッグ名:cat)の投稿を検索対象から除きたいのですが、いろいろ調べてみるもどうしてもわからないでいます。 こちらのサイトを参考にして、以下のコードをfunctions.phpにコピー&ペーストしてみましたが、全てのカスタム投稿タイプの投稿が検索結果から除かれているようでした。 ``` function search_exclude_custom_post_type( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { $query->set( 'post_type', array( 'post', 'page' ) ); } } add_filter( 'pre_get_posts', 'search_exclude_custom_post_type' ); ``` 「特定の」カスタム投稿タイプ(投稿タイプスラッグ名:cat)の投稿のみを検索対象から除くには、どのように記述すれば良いのかがわからないのです。以下のようにすれば良いのかなと思い試してみるも、ダメでした。 ``` $query->set( 'cat', array( 'post', 'page' ) ); ``` こちらの回答を見てみたのですが、何やらこちらはカスタムタクソノミーをどうこうしているようで、私の作った特定のカスタム投稿タイプ(投稿タイプスラッグ名:cat)には特にカスタムタクソノミーを設定しておらず、このコードをfunctions.phpに入れるのは違うのかなと......。(試しにやってみたところ、検索結果が0件になってしまいました) 何日間も考えたり試したりしていますが、どうにも行き詰まってしまいました。 どなたかお教えいただければ幸いです。よろしくお願いいたします。
回答: ~~$queryにセットするパラメータを変更下さい~~ すいません、除外ですね。 ~~$query->set( 'post_type', array( 'post', 'page' ,’カスタム投稿タイプスラッグ’) );~~ カスタム投稿タイプの定義に以下を追加したらどうでしょうか。 ``` exclude_from_search => 'true' ```