Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 如何将存档产品用作页面模板上的模板?_Wordpress_Woocommerce - Fatal编程技术网

Wordpress 如何将存档产品用作页面模板上的模板?

Wordpress 如何将存档产品用作页面模板上的模板?,wordpress,woocommerce,Wordpress,Woocommerce,这是我第一次在stackoverflow上发表文章。我花了好几天的时间试图自己解决这个问题,在任何我能找到的地方到处寻找,但我已经不知所措,我即将完全放弃。 请帮帮我。 任务: 使用页面模板(page sale.php),我需要显示所有在售产品,并能够按价格(asc和desc)、类别和添加日期对它们进行排序 可能的解决方案: 使用WP_查询(当前情况): 这适用于显示产品,但尝试在我想要添加排序列表时,我也必须进行自定义,我需要/希望正确地执行此操作-即,我不想创建自己的选择选项并使用$\u G

这是我第一次在stackoverflow上发表文章。我花了好几天的时间试图自己解决这个问题,在任何我能找到的地方到处寻找,但我已经不知所措,我即将完全放弃。 请帮帮我。

任务:

使用页面模板(page sale.php),我需要显示所有在售产品,并能够按价格(asc和desc)、类别和添加日期对它们进行排序

可能的解决方案:

使用WP_查询(当前情况):

这适用于显示产品,但尝试在我想要添加排序列表时,我也必须进行自定义,我需要/希望正确地执行此操作-即,我不想创建自己的选择选项并使用$\u GET有条件地更改我的查询,这不是我正在寻找的干净解决方案,我知道有更好的方法

我的想法:

使用wc_get_template_part('archive','product'),或者简单地将archive-product.php内容复制/粘贴到我的页面模板中,然后使用wc钩子或编辑模板来更改查询和排序列表以满足我的需要

所以我试过了。使用wc_get_template_part(‘归档’、‘产品’)我尝试了

我还尝试了woocommerce\u-before\u-shop\u-loop和woocommerce\u-shop\u-loop作为挂钩

此外,我还尝试将archive-product.php的内容复制到我的页面模板文件中,即我的page-sale.php是archive-product.php的直接副本。但是现在没有显示任何产品,分类列表也没有显示,但是商店页面工作正常,显示了所有产品的分类列表

其他想法:

不,我不会使用短代码,这需要使用页面模板来完成

最后的想法:

我感到非常失落。我以前与WordPress合作过,但WooCommerce对我来说是全新的。我一直努力想弄清楚这件事。但文档中缺少了这一步,我不理解其中的解释。这太令人沮丧了,我很生气,我想哭

尽管文档很全面,但太糟糕了,我不知道该去哪里找。每次我看到一个问题,看起来像我的,只是从来没有完全满足我的具体需要。我发现所有的答案都是有意义的,我理解它们,我只是缺少了一块拼图

请。帮助。

更新

所以我做了更多的测试。目前,我已经将archive-product.php复制到我自己的模板中,并添加了我自己的查询,该查询正在运行。然而,我发现我的排序列表没有显示的原因可能是因为before_shop_循环不起作用。我试着从这里的答案来解决它,但是没有用。此外,我还发现,但这似乎也是一条死胡同

                $args = array(
                    'post_type' => 'product',
                    'posts_per_page' => 12,
                    'meta_query' => array( //only get products on sale
                        array(
                            'key'     => '_sale_price',
                            'value'   => 0,
                            'compare' => '>'
                        )
                    )
                );
                $loop = new WP_Query( $args );
                if ( $loop->have_posts() ) {
                    while ( $loop->have_posts() ) : $loop->the_post();
                        wc_get_template_part( 'content', 'product' );
                    endwhile;
                } else {
                    echo __( 'No products found' );
                }
                wp_reset_postdata();
add_action('pre_get_posts', 'wc_custom_query');
function wc_custom_query() {
    $args = array(
        'post_type' => 'product',
        'posts_per_page' => 12,
        'meta_query' => array( //only get products on sale
            array(
                'key'     => '_sale_price',
                'value'   => 0,
                'compare' => '>'
            )
        )
    );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) : $query->the_post();
            wc_get_template_part( 'content', 'product' );
        endwhile;
    } else {
        echo __( 'No products found' );
    }
    wp_reset_postdata();
}