web-dev-qa-db-ja.com

商品カテゴリページにおすすめ商品を表示する

私はwoocommerceに関する次の問題について手助けをしたいと思います。

私はワードプレス3.5.2、woocommerce 2.0.13とsommerceのテーマを使用しています。

私は5つのサブカテゴリを表示する製品カテゴリページを持っています。 5つのサブカテゴリ画像の下に、これらのカテゴリのおすすめ商品またはランダム商品をいくつか掲載したいと思います。あなたは私がそれをすることができる方法を知っていますか?

1

私は二重チェックしただけで、WooCommerceはthe_contentフィルタを通して商品カテゴリの説明を実行します。つまり、ショートコードを実行する必要があります。

WooCommerceにはたくさんのショートコードがあります、 彼らのドキュメントを参照してください

おすすめ商品を含む:

[featured_products per_page="12" columns="4"]

そのマイナス面は、特色にされたプロダクトがすべてその特定のカテゴリからではないかもしれないということです。それが問題であるかどうかあなたは言及しませんでした。

もしそうなら、[featured_products](実際にはWP_Queryを使って二次ループを実行しているだけです)からコードを複製することができます。少しそれを微調整してwoocommerce_before_shop_loopフックに出力を追加します。

function wpa_107952_featured (){

    if( !is_product_category() )
        return;


    $args = array(
        'post_type' => 'product',
        'product_cat' => get_query_var('product_cat'),
        'post_status' => 'publish',
        'ignore_sticky_posts'   => 1,
        'posts_per_page' => 8,
        'meta_query' => array(
            array(
                'key' => '_visibility',
                'value' => array('catalog', 'visible'),
                'compare' => 'IN'
            ),
            array(
                'key' => '_featured',
                'value' => 'yes'
            )
        )
    );

    ob_start();

    $products = new WP_Query( $args );

    $woocommerce_loop['columns'] = 4;

    if ( $products->have_posts() ) : ?>

        <?php woocommerce_product_loop_start(); ?>

            <?php while ( $products->have_posts() ) : $products->the_post(); ?>

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

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

        <?php woocommerce_product_loop_end(); ?>

    <?php endif;

    wp_reset_postdata();

    echo '<div class="woocommerce">' . ob_get_clean() . '</div>';
}

add_action( 'woocommerce_before_shop_loop', 'wpa_107952_featured' );
2
helgatheviking