wooocmmerce模板插件

时间:2017-04-11 16:57:26

标签: templates woocommerce

我需要使用此短代码在其中创建页面和短代码,我将在此模板上显示不同类型的产品。但问题是我无法使用插件正确调用此页面模板我已经使用了我的custom_locate_template() 函数,但我多次调用此页面结束。自定义页面模板被调用,但问题是它被调用两次,我不明白为什么这个页面模板包含审查部分,因为我没有审查部分代码。任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

$term = get_term_by( 'slug', 'custom_product_type','product_type');

 $args = array( 
    'post_type' => 'product', 
        'tax_query' => array(
            array(
                'taxonomy' => 'product_type',
                'terms' => $term->term_id,
                'operator' => 'IN',
            )
        )
    ); 

    $loop = new WP_Query( $args );

    echo "<div class='custom_product_type'>";

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

        <?php

            /**
             * woocommerce_before_shop_loop hook.
             *
             * @hooked woocommerce_result_count - 20
             * @hooked woocommerce_catalog_ordering - 30
             */
            do_action( 'woocommerce_before_shop_loop' );
        ?>

        <?php woocommerce_product_loop_start(); ?>

            <?php woocommerce_product_subcategories(); ?>

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

                <?php $evt_mngr->wk_get_template( 'custom_product_type.php' ); ?>

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

        <?php woocommerce_product_loop_end(); ?>

        <?php
            /**
             * woocommerce_after_shop_loop hook.
             *
             * @hooked woocommerce_pagination - 10
             */
            do_action( 'woocommerce_after_shop_loop' );
        ?>

    <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

        // not found code ?>

    <?php endif;  

    echo "</div>";

    /**
     * woocommerce_after_main_content hook.
     *
     * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
     */
    do_action( 'woocommerce_after_main_content' );
?>

<?php
    /**
     * woocommerce_sidebar hook.
     *
     * @hooked woocommerce_get_sidebar - 10
     */
    do_action( 'woocommerce_sidebar' );
?>

$args = array( 'post_type' => 'product', 'tax_query' => array( array( 'taxonomy' => 'product_type', 'terms' => $term->term_id, 'operator' => 'IN', ) ) ); $loop = new WP_Query( $args ); echo "<div class='custom_product_type'>"; if ( $loop->have_posts() ) : ?> <?php /** * woocommerce_before_shop_loop hook. * * @hooked woocommerce_result_count - 20 * @hooked woocommerce_catalog_ordering - 30 */ do_action( 'woocommerce_before_shop_loop' ); ?> <?php woocommerce_product_loop_start(); ?> <?php woocommerce_product_subcategories(); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php $evt_mngr->wk_get_template( 'custom_product_type.php' ); ?> <?php endwhile; // end of the loop. ?> <?php woocommerce_product_loop_end(); ?> <?php /** * woocommerce_after_shop_loop hook. * * @hooked woocommerce_pagination - 10 */ do_action( 'woocommerce_after_shop_loop' ); ?> <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?> // not found code ?> <?php endif; echo "</div>"; /** * woocommerce_after_main_content hook. * * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content) */ do_action( 'woocommerce_after_main_content' ); ?> <?php /** * woocommerce_sidebar hook. * * @hooked woocommerce_get_sidebar - 10 */ do_action( 'woocommerce_sidebar' ); ?>

答案 1 :(得分:0)

根据您的说明,似乎在custom_product_type.php中列出了来自相同帖子类型或标记的所有帖子。如果是这样,那么你不需要外循环。

以下一行 -

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

使其递归。假设您有2个帖子(产品),则会调用custom_product_type.php两次。如果您有3个帖子,则会将模板调用三次。

答案 2 :(得分:0)

要删除产品评论,请在主题的functions.php或任何其他相关位置使用以下代码。

remove_action( 'woocommerce_product_tabs', 'woocommerce_product_reviews_tab', 30);
remove_action( 'woocommerce_product_tab_panels', 'woocommerce_product_reviews_panel', 30);