#wordpress #woocommerce
#php #wordpress
Вопрос:
Я использую этот код, чтобы исключить некоторую категорию сообщений из результатов поиска WordPress :
function SearchFilter($query)
{
if ($query->is_search)
{
$query->set('cat', '-709,-710,-614');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
Моя проблема в том, что это не работает для категорий woocommerce, а продукты не фильтруются.
Как я могу также отфильтровать некоторые категории woocommerce?
Ответ №1:
Можете ли вы заменить свою категорию. надеюсь, это поможет вам.
function wpse188669_pre_get_posts( $query ) {
if (
! is_admin()
amp;amp; $query->is_main_query()
amp;amp; $query->is_search()
) {
$query->set( 'post_type', array( 'product' ) );
// set your parameters according to
// https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
$tax_query = array(
array(
// likely what you are after
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'category-2',
'operator' => 'NOT IN',
),
);
$query->set( 'tax_query', $tax_query );
}
}
add_action( 'pre_get_posts', 'wpse188669_pre_get_posts' );
Комментарии:
1. Это работает для продуктов woocommerce, но не будет ли он фильтровать также сообщения с теми же условиями?
2. Вы хотите опубликовать фильтр, следует изменить таксономию