当前位置: 首页 > 知识库问答 >
问题:

从自定义页面调用WooCommerce产品归档时不显示任何内容

宗增
2023-03-14

我有一个WooCommerce商店页面,它完美地展示了我所有的产品。此页面也设置为设置中的“商店”页面。现在我想要一个叫做首页的第二个页面,它应该使用与商店页面相同的模板。(

home-template.php

<?php /* Template Name: Homepage */ 
    if ( ! defined( 'ABSPATH' ) ) {
        exit; // Exit if accessed directly
    }
    wc_get_template( 'archive-product.php' );
?>

我使用的是woocommerce的github中的标准归档产品模板。

我可以看到正在加载的模板,如标题,但某些woocommerce函数不会返回预期值。woocommerce\u-before\u-shop\u循环不会返回任何内容,即使它应该显示orderby下拉列表。woocommerce\u product\u loop()返回true,但wc\u get\u loop\u prop('total')返回零。

我还尝试将文件重命名为front-page.php,但没有帮助。主页在阅读设置中设置正确。

我是否错过了一个查询调用,或者是其他原因?提前感谢您的帮助!

共有1个答案

姜德容
2023-03-14

当WooCommerce创建内置商店页面时,它会将创建页面的id保存在wp_选项数据库表中,选项名称为“WooCommerce_商店_页面_id”。WordPress加载页面时,WooCommerce检查所加载页面的页面id是否等于option_name“WooCommerce_shop_page_id”的option_值,然后执行代码生成该页面的HTML。如果您在页面编辑器中查看了shop页面,您将注意到内容是空的。神奇之处在于为这个特殊id执行的硬编码例程。

由于您的自定义页面具有不同的页面id,因此不会执行任何用于生成车间页面的自定义代码。因此,您需要为您的自定义页面执行此神奇代码。这是可以做到的,但你需要对商业有很好的了解。

我建议您重新考虑您的设计,而不是一个新的页面,只需使用操作和过滤器自定义现有的商店页面。

 类似资料: