I need to hide products with same title from shop page. I have many products with different SKU but same name.
Is it possible to achieve that with a distinct function like this or should i create a custom loop?
add_filter( 'posts_distinct', function ( $distinct ) {
//if same name update_post_meta( $product_id, '_visibility', '_visibility_search' );
return 'DISTINCT'; });
Advertisement
Answer
Ok so i’ve found the solution by using a function, in case anyone in the future needs it.
add_filter( 'posts_groupby', 'custom_posts_groupby', 10, 2 );
function custom_posts_groupby( $groupby, $query ) {
global $wpdb;
if ( is_main_query() && (is_shop() || is_product_category() || is_search() )) {
$groupby = "{$wpdb->posts}.post_title";
}
return $groupby;
}