Показать продукты в категории - PullRequest
0 голосов
/ 29 января 2020

У меня есть следующий код для отображения товаров в категории на странице магазина:

add_action('woocommerce_before_shop_loop', 'seperate_collection', 10);
function seperate_collection(){
    // men's collections
    if ( is_shop() ){
        $cat_args = array(
            'taxonomy' => 'product_cat',
            'parent' => 42 // for-him category id.
        );
        $categories = get_categories( $cat_args );
        foreach ($categories as $category) { 
            echo '<h3>' . $category->cat_name . '</h3>';
            echo do_shortcode('[products category="' . $category->slug . '" columns="4" orderby="date" order="DESC"]'); 
        }

    }

}

Это именно то, что я хочу.

Но моя проблема в том, что товары появляются снова после перечисленных категорий. Я пытался использовать следующий код, чтобы скрыть продукты от повторного показа:

add_action( 'pre_get_posts', 'remove_products_from_shop_page' );

function remove_products_from_shop_page( $q ) {
   if ( ! $q->is_main_query() ) return;
   if ( ! $q->is_post_type_archive() ) return;
   if ( ! is_admin() && is_shop() ) {
      $q->set( 'post__in', array(0) );
   }
   remove_action( 'pre_get_posts', 'remove_products_from_shop_page' );
}

Но в итоге удаляется все, включая продукты по категориям.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...