我是wp-dev的新手,正在试图找出如何替换或更改woocommerce在任何存档页面上显示我所有产品的查询,或显示我的产品列表的页面,不知道它叫什么,但显示图片、名称、价格和;链接到产品页。我有多个类别,所以我想我需要添加代码来显示不同的类别,这取决于它们所在的cat页面?除非我看得太深了。
我正在尝试制作一个高级循环,它根据一些东西向我显示产品组。首先我想看到所有特色产品,然后我想看到不超过6个月的产品,然后是菜单顺序中的所有其他内容,然后是标题顺序升序。
更复杂的是,我不想要任何副本。我认为我的代码可以正常工作,但我不确定具体放在哪里或如何放置,所以woo开始使用它并显示我的结果。下面是我正在使用的代码,我把它放在woocommerce中。php页面在我的子主题中,它不会显示任何内容,除非我回显或打印一些内容。所以我知道我遗漏了一些东西,但作为一个新手,我不知道我需要搜索什么才能看到结果。
我的代码:(woocommerce.php)
<?php
if ( is_shop() || is_product_category() || is_product_tag() ) { // Only run on shop archive pages, not single products or other pages
// Products per page
$per_page = 12;
if ( get_query_var( \'taxonomy\' ) ) { // If on a product taxonomy archive (category or tag)
//First loop
$args = array(
\'post_type\' => \'product\',
\'orderby\' => array( \'meta_value\' => \'DESC\' ),
\'meta_key\' => \'_featured\',
\'posts_per_page\' => $per_page,
\'paged\' => get_query_var( \'paged\' ),
);
$loop = new WP_Query( $args );
if (have_posts()) :
while ($loop->have_posts()) : $loop->the_post();
$post_id = get_the_ID();
$do_not_duplicate[] = $post_id;
endwhile;
endif;
rewind_posts();
//Second loop
$args = array(
\'post_type\' => \'product\',
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'date_query\' => array(
array(
\'before\' => \'6 months ago\',
),
),
\'post__not_in\' => $do_not_duplicate
);
$loop = new WP_Query( $args );
if (have_posts()) :
while ($loop->have_posts()) : $loop->the_post();
$post_id = get_the_ID();
$do_not_duplicate[] = $post_id;
endwhile;
endif;
rewind_posts();
//Third loop
$args = array(
\'post_type\' => \'product\',
\'orderby\' => array(
\'menu_order\' => \'ASC\',
\'title\' => \'ASC\',
\'post__not_in\' => $do_not_duplicate
),
);
$loop = new WP_Query( $args );
if (have_posts()) :
while ($loop->have_posts()) : $loop->the_post();
$post_id = get_the_ID();
$do_not_duplicate[] = $post_id;
endwhile;
endif;
} else { // On main shop page
$args = array(
\'post_type\' => \'product\',
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'posts_per_page\' => $per_page,
\'paged\' => get_query_var( \'paged\' ),
);
}
// Set the query
$products = new WP_Query( $args );
// Standard loop
if ( $products->have_posts() ) :
while ( $products->have_posts() ) : $products->the_post();
endwhile;
wp_reset_postdata();
endif;
} else { // If not on archive page (cart, checkout, etc), do normal operations
woocommerce_content();
}
任何能帮我指引正确方向的人都会帮上大忙!
Update
我忘了添加
\'post_type\' => \'product\'
在我的参数中(刚刚更新),但现在我可以在添加时看到我的标题
the_title();
在我的while循环中,我如何告诉它像对待任何归档页面一样把所有内容都吐出来(称为模板?),另外,我如何使其更通用,以便根据我所在的类别/归档页面,仅显示该类别的产品?再次感谢!