为什么产品循环在 archive-product.php 文件之外不起作用?
Why doesn't the product loop work outside of the archive-product.php file?
我正在尝试创建一个自定义电子商务网站,我想在另一个页面上显示一些产品。
当我将此循环从存档产品页面复制到我的目标页面时,它没有输出任何内容
<?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() returns true (1) 但是 wc_get_prop('total') returns a 0 which符合wc_setup_loop() which is called in wc_get_loop_prop() before的默认值返回true或false。在我们开始 archive-product.php 产品循环之前,我找不到被调用的 wc_setup_loop() 那么为什么事情在那里工作而不是在我的目标页面上;除了周围的 HTML 和一些动作外,代码是相似的。
我只是想复制并粘贴这段代码的原因是为了实验,这让我抓狂,因为它不能在新页面上运行。
如果有帮助,我的页面就是这样
<?php get_header();?>
<div>
<!-- paste code here -->
</div>
<?php get_footer();?>
注意:我是 php 新手
存档的全局 posts 设置为产品 post 类型,当您创建单独的页面或页面模板时,无法知道您想在此处显示什么正是我们使用 WP_Query 的原因,您可以阅读此 article
我正在尝试创建一个自定义电子商务网站,我想在另一个页面上显示一些产品。
当我将此循环从存档产品页面复制到我的目标页面时,它没有输出任何内容
<?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() returns true (1) 但是 wc_get_prop('total') returns a 0 which符合wc_setup_loop() which is called in wc_get_loop_prop() before的默认值返回true或false。在我们开始 archive-product.php 产品循环之前,我找不到被调用的 wc_setup_loop() 那么为什么事情在那里工作而不是在我的目标页面上;除了周围的 HTML 和一些动作外,代码是相似的。
我只是想复制并粘贴这段代码的原因是为了实验,这让我抓狂,因为它不能在新页面上运行。
如果有帮助,我的页面就是这样
<?php get_header();?>
<div>
<!-- paste code here -->
</div>
<?php get_footer();?>
注意:我是 php 新手
存档的全局 posts 设置为产品 post 类型,当您创建单独的页面或页面模板时,无法知道您想在此处显示什么正是我们使用 WP_Query 的原因,您可以阅读此 article