• 解決済 Rena0404

    (@rena0404)


    テーマResponsiveを使っています。

    検索窓からの検索対象から特定のカテゴリを除外しています。
    すると、管理画面の投稿ページ、編集画面にある検索の検索結果から特定のカテゴリが除外されてしまいます。
    できれば、編集画面の検索結果は全カテゴリを対象にしたいのですが、できますでしょうか。

    特定のカテゴリの除外は下記の方法で行っております。

    function SearchExcludeCategoryFilter($query) {
    if ($query->is_search) { $query->set(‘cat’,’-〇,-〇’); }
    return $query;
    }
    add_filter(‘pre_get_posts’,’SearchExcludeCategoryFilter’);

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • is_admin()でチェックすれば、
    管理画面とフロントエンドで設定を変えることができます。

    詳細は公式ドキュメントをご覧ください。
    http://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7/pre_get_posts

    トピック投稿者 Rena0404

    (@rena0404)

    Fumito MIZUNO様

    ありがとうございます。
    解決しました。

    下記を追加しました。

    if ( is_admin() || ! $query->is_main_query() )
        return;

    最終的にはこうなりました。

    function SearchExcludeCategoryFilter($query) {
    if ( is_admin() || ! $query->is_main_query() )
        return;
    if ($query->is_search) { $query->set('cat','-7685'); }
        return $query;
    }
     add_filter('pre_get_posts','SearchExcludeCategoryFilter');
    
    if(!is_admin()){}

    トピック投稿者 Rena0404

    (@rena0404)

    すみません。最後に余計な一行が入っていました。

    正しくは下記です。

    function SearchExcludeCategoryFilter($query) {
    if ( is_admin() || ! $query->is_main_query() )
        return;
    if ($query->is_search) { $query->set('cat','-7685'); }
        return $query;
    }
     add_filter('pre_get_posts','SearchExcludeCategoryFilter');
    トピック投稿者 Rena0404

    (@rena0404)

    すみません。できたと思っていたらできてませんでした。
    上記の方法ですと、検索結果から「特定のカテゴリーの除外」ができていませんでした。

    色々試したのですが、うまくいきません。

    トピック投稿者 Rena0404

    (@rena0404)

    自己解決しました。下記で落ち着きました。

    function SearchExcludeCategoryFilter($query) {
        if (!is_admin()&$query->is_search) { $query->set('cat','-〇'); }
        return $query;
    }
     add_filter('pre_get_posts','SearchExcludeCategoryFilter');
5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「検索結果の対象範囲が管理画面の投稿編集の検索に反映される」には新たに返信することはできません。