在Woo Commerce中,我希望能够动态更改某些产品类别页面上显示的产品,而不必手动更改后端的产品类别。
我已经在循环之前使用以下代码实现了“覆盖”“循环” ...
// Using array of products I pulled from DB
foreach($_products as $featured_product) {
$post_object = get_post($featured_product->get_id());
setup_postdata($GLOBALS['post'] =& $post_object);
wc_get_template_part( 'content', 'grid-product' );
}
wp_reset_postdata();
此解决方案完成了一半的工作,它使产品以我想要的方式出现在模板上。
但是,所有的架构代码都丢失了,并且在模板中弹出了一些其他内容,因为它在主页面查询中没有“看到”和显示产品。
后来进行了一些研究,我发现这个钩子似乎可以解决我的问题。
add_action( 'woocommerce_product_query', function($q) {
$ids = [10, 20, 30];
$q->set('post__in', $ids);
});
这是针对Woo Commerce存档页面的,因此我希望此代码插入具有我传递的ID的产品。
循环中没有显示任何内容,我确实尝试更新WP_Query中的post_count属性以尝试使循环也触发。
有人可以提供更多建议吗?
谢谢