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