En ese caso, lo estás haciendo bien. Lo mejor es definir las marcas como un atributo. Productos/Atributos y ahí debes tener marca y todos los términos. Prueba lo siguiente y si no funciona, sigue buscando que seguro en Google encuentras el código, pero siempre teniendo en cuenta que es un atributo:
function filter_products_by_pa_brand( $query ) {
if ( ! is_admin() ) {
return $query;
}
$screen = get_current_screen();
if ( $screen->post_type == 'product' ) {
$pa_brand = ( isset( $_GET['pa_brand'] ) ) ? $_GET['pa_brand'] : '';
if ( ! empty( $pa_brand ) ) {
$query->query_vars['tax_query'][] = array(
'taxonomy' => 'pa_brand',
'field' => 'slug',
'terms' => $pa_brand,
);
}
}
}
add_filter( 'parse_query', 'filter_products_by_pa_brand' );
Es importante que aclares cómo defines la marca, si es un atributo del producto o una taxanomía. Si es un atributo, la función no encuentra la marca.
Muchísimas gracias por tu respuesta. Voy a intentarlo!