web-dev-qa-db-ja.com

Woocommerceカテゴリページからチャイルド商品を削除する

親用語と子用語の両方からの商品を表示する分類テンプレートがありますが、親用語に属する商品のみを表示するにはどうすればよいですか。

私はどういうわけかコードのこの部分を修正しようとしています:

            <?php woocommerce_product_subcategories(); ?>

            <?php while ( have_posts() ) : the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

現在の分類法に属する製品のみを表示するにはどうすればよいですか。

1
Yury Zheve

親カテゴリの商品のみを表示し、子カテゴリの商品を削除するとします。 あなたのテーマのfunctions.php ファイルの最後に以下のコードを追加してください。

function exclude_product_cat_children( $wp_query ) {
    if ( isset( $wp_query->query_vars['product_cat'] ) && $wp_query->is_main_query() ) {
        $wp_query->set( 
            'tax_query', array( array (
                'taxonomy' => 'product_cat',
                'field' => 'slug',
                'terms' => $wp_query->query_vars['product_cat'],
                'include_children' => false
            ) )
        );
    }
}  
add_filter('pre_get_posts', 'exclude_product_cat_children');
2
Jignesh Patel