声明后,不再显示WooCommerce主题支持产品

时间:2019-05-02 作者:Dallas Price

标题基本上说明了一切。我正在拼凑发布我的第一个主题,并从插件中复制了woocommerce模板文件。因此,它们应该是相同的,没有当前的变化。然而,当我在函数中添加主题支持时。php我不再显示产品。从他们的github中基本上可以看出这一声明是正确的:

    function bad_billy_beards_add_woocommerce_support() {
    add_theme_support( \'woocommerce\', array(
        \'thumbnail_image_width\' => 150,
        \'single_image_width\'    => 300,

        \'product_grid\'          => array(
            \'default_rows\'    => 3,
            \'min_rows\'        => 2,
            \'max_rows\'        => 8,
            \'default_columns\' => 4,
            \'min_columns\'     => 2,
            \'max_columns\'     => 5,
        ),
    ) );
}
add_action( \'after_setup_theme\', \'bad_billy_beards_add_woocommerce_support\' );
谢谢你。

2 个回复
SO网友:user3135691

有关详细信息,请参阅此帖子WooCommerce templating mechanism. 一个基本原则是:只覆盖要自定义的内容,而不是更多。

因此,您应该删除所有未更改的文件,注意两行代码(这意味着您可能会两次声明相同的内容,可能使用不同的变量/名称空间和/或其他内容),这可能是它中断的原因。

对于自定义产品布局,我只需覆盖archive-products.php

Edit: 您可以使用add\\u theme\\u支持,而不必在末尾使用数组。试试看。

<?php
   function bad_billy_beards_add_woocommerce_support() {
       add_theme_support( \'woocommerce\');
}
add_action( \'after_setup_theme\', \'bad_billy_beards_add_woocommerce_support\' );

SO网友:Dallas Price

我想我有点明白了。。。看来我在这里遗漏了一点。

function bad_billy_beard_add_woocommerce_support() {
    add_theme_support( \'woocommerce\', array(
        \'thumbnail_image_width\' => 150,
        \'single_image_width\'    => 300,

        \'product_grid\'          => array(
            \'default_rows\'    => 3,
            \'min_rows\'        => 2,
            \'max_rows\'        => 8,
            \'default_columns\' => 4,
            \'min_columns\'     => 2,
            \'max_columns\'     => 5,
        ),
    ) );
}
add_action( \'after_setup_theme\', \'bad_billy_beard_add_woocommerce_support\' );

remove_action( \'woocommerce_before_main_content\', \'woocommerce_output_content_wrapper\', 10);
remove_action( \'woocommerce_after_main_content\', \'woocommerce_output_content_wrapper_end\', 10);

add_action(\'woocommerce_before_main_content\', \'bad_billy_beard_start\', 10);
add_action(\'woocommerce_after_main_content\', \'bad_billy_beard_end\', 10);

function bad_billy_beard_start() {
    echo \'<section id="main">\';
}

function bad_billy_beard_end() {
    echo \'</section>\';
}