Я экспериментирую с созданием собственного сайта электронной коммерции и хочу отображать некоторые продукты на другой странице.
Когда я копирую этот цикл со страницы архива продукта на свою целевую страницу, он ничего не выводит.
<?php
if (woocommerce_product_loop()) {
woocommerce_product_loop_start();
if (wc_get_loop_prop('total')) {
while (have_posts()) {
the_post();
/**
* Hook: woocommerce_shop_loop.
*/
do_action('woocommerce_shop_loop');
wc_get_template_part('content', 'product');
}
}
woocommerce_product_loop_end();
/**
* Hook: woocommerce_after_shop_loop.
*
* @hooked woocommerce_pagination - 10
*/
do_action('woocommerce_after_shop_loop');
} else {
/**
* Hook: woocommerce_no_products_found.
*
* @hooked wc_no_products_found - 10
*/
do_action('woocommerce_no_products_found');
}
?>
Пока я знаю, что woocommerce_product_loop () возвращает true (1), но wc_get_prop ('total') возвращает 0, что соответствует значениям по умолчанию wc_setup_loop (), который вызывается в wc_get_loop_prop () перед тем, как вернуть true или false. Я не могу найти вызываемую wc_setup_loop () до того, как мы запустим цикл продуктов archive-product.php, так почему же там что-то работает, а не на моей целевой странице; за исключением окружающего HTML и нескольких действий, код похож.
Причина, по которой я просто хочу скопировать и вставить этот код, - это эксперименты, меня просто сводит с ума, что он не будет работать на новой странице.
Если это поможет, моя страница такая же
<?php get_header();?>
<div>
<!-- paste code here -->
</div>
<?php get_footer();?>
ПРИМЕЧАНИЕ: я новичок в php