Как правильно сделать так, что бы в каталоге не выводилось товары из определенной категории, но выводились в поиске?

Чтобы исключить товары из определенной категории из отображения в каталоге, но все же позволить их поиску, вам потребуется добавить небольшой код в вашу тему WordPress.

Во-первых, вам нужно определить ID категории, которую вы хотите исключить. Вы можете найти его, перейдя в раздел "Товары" -> "Категории" в вашей админ-панели WordPress и наведя указатель мыши на нужную категорию. ID категории будет отображаться в адресной строке браузера после параметра "tag_ID=".

Один из самых распространенных методов ошибочно найденной маркировки, и я рекомендую использовать его в этом случае, - это использовать фильтр "pre_get_posts". Вы можете добавить следующий код в файл functions.php вашей темы:

function exclude_category_from_catalog( $query ) {
    if ( $query->is_main_query() && ! is_admin() ) {
        if ( $query->is_post_type_archive( 'product' ) ) {
            $query->set( 'tax_query', array(
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    'terms' => 'имя-категории',
                    'operator' => 'NOT IN',
                ),
            ) );
        }
    }
}
add_action( 'pre_get_posts', 'exclude_category_from_catalog' );

В этом коде мы используем фильтр "pre_get_posts", чтобы изменить запрос для основного цикла на странице архива товаров. Если текущий запрос является основным и не административным, а также если он относится к типу записи "product", мы добавляем таксономический запрос для исключения указанной категории.

Не забудьте заменить 'имя-категории' на фактический слаг (URL-адрес) вашей исключаемой категории. Если у вас есть несколько категорий для исключения, вы можете передать массив слагов, включив их в параметр 'terms'.

После внесения изменений сохраните файл functions.php, загрузите его на сервер и проверьте свой каталог товаров. Теперь товары из заданной категории должны быть исключены.

Однако, чтобы товары из исключенной категории все еще отображались в поиске, вам необходимо будет включить их в общий запрос поиска. Для этого вам может потребоваться использовать плагин для улучшения функциональности поиска в вашем магазине WooCommerce, такой как "Relevanssi". Он позволяет настроить поиск и включить исключенные категории в результаты.

C использованием вышеуказанных подходов вы сможете исключить товары из определенной категории из отображения в каталоге, но все же позволить их поиску, в вашем магазине WordPress.