我有一个函数(* Wordpress Child Theme)functions.php,它使用全局$ wp_query返回附加的WooCommerce产品类别 . get_posts()函数只返回第一页产品的产品数量 . (* post_per_page值 - 在这种情况下为16) .
我试图通过在archive-product.php模板中的函数调用之前添加下面的代码来临时将post_per_page设置为-1:
$wp_query->set('posts_per_page', 999);
$wp_query->query($wp_query->query_vars);
然后在archive-product.php模板中调用函数后重置该值
$wp_query->set('posts_per_page', 16);
$wp_query->query($wp_query->query_vars);
这几乎可以工作,但会弄乱pre_get_posts函数(*对产品进行排序),如果超过500种产品,似乎也会导致产品列表出现问题?
请任何建议将不胜感激 . 谢谢 .
//build dynamic category select menu based on attached categories
function dynamic_category_select() {
global $wp_query;
$my_posts = $wp_query->get_posts();
$my_post_ids = wp_list_pluck($my_posts, 'ID');
$categories = wp_get_object_terms($my_post_ids, 'product_cat');
foreach($categories as $category) {
$options[] = '<option value="' . $category->slug . '">' . $category->name . '</option>';
}
$x = '<select id="category-options" name="category-options">';
$x .= '<option value="">Select Category Options</option>';
foreach($options as $option) {
$x .= $option;
}
$x .= '</select>';
return $x;
}
1 回答
尝试使用以下内容替换
$my_posts = $wp_query->get_posts();
: