我正在制作一个产品归档页面,在该页面上,我会在每个页面上显示20个带有分页的产品。
每个产品的价格都是通过一个公式来计算的,这个公式通过数据库中保存的数据来获取其参数。它是这样工作的(并且不会与每个产品一起保存在自定义字段中),因为这样我们就可以更改数据库中的一些数据,所有产品的价格都会更改。
问题是我现在无法按元键和值排序。因此,我尝试将价格添加到查询的posts数组中,然后按价格订购。但如果使用分页,则只能按价格订购前20项。因此,下一页将显示价格低于第一页的产品。
First page 20 item:
<产品10,00等
Second page 20 items:
// Get pages page for pagination
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
// Query arguments
$args = array(
\'post_type\' => \'products\',
\'posts_per_page\' => 20,
\'paged\' => $paged
);
// Create object
$products = new WP_Query( $args );
// Add price to each product
foreach( $products->posts as $product ) {
$price = price_calulate_function( $product->ID );
$product->price = $price;
}
// Sort by price
uasort( $products->posts, function( $a, $b ) {
$a = $a->price;
$b = $b->price;
if( $a == $b ) {
return 0;
}
return ( $a < $b ) ? -1 : 1;
});
// Loop
if( $products->have_posts() ) {
while( $products->have_posts() ) {
$products->the_post();
// Show product
}
}