我想我需要一些指导。我在存档模板页面上有一个自定义帖子列表,其中显示了每个自定义帖子的信息。它们使用WPQuery循环:
<?php $restypes = new WP_Query( array( \'post_type\' => \'reservation_type\', \'posts_per_page\' => -1 ) );?>
每个帖子都有几个自定义字段:
$price
, 可选
$promo_price
还有一个变量
$per
它根据自定义分类法确定价格是每人还是每个房间。然后确定最佳价格,如下所示:
if(in_array( \'dorm\', $per )){
$person_room =\'per-person\';
} else {
$person_room =\'per-room\';
}
$post_id= $post->ID;
$promo_price = get_field(\'promo_price\');
$norm_price = get_field(\'price\');
$p_per_room = get_field(\'people_per_room\');
if ($promo_price && !empty($promo_price)){
if($person_room == \'per-room\'){
$addprice= $promo_price /$p_per_room;
} else {
$addprice= $promo_price;
}
$prices[$post_id]= $addprice;
} elseif ($norm_price && !empty($norm_price)){
if($person_room == \'per-room\'){
$addprice= $norm_price /$p_per_room;
} else {
$addprice= $norm_price;
}
$prices[$post_id]= $addprice;
}
$best = array_keys($prices, min($prices));
我的问题是数组
$best
直到所有帖子都循环通过后才完成。所有这些的要点是能够添加:
<?php
if(in_array($post->ID, $best)){?>
<div class="best-price">
<div class="ribbon-wrapper"><div class="ribbon">Best Price</div></div>
<?php } else { ?>
<div>
<?php } ?>
因此,以最佳的人均价格为商品提供不同的风格。
我的问题是,我是否需要创建一个单独的循环来填充$best
数组以执行此操作?还是有更好的方法?
我最初考虑使用orderby => \'meta_value_num\'
计算出最佳价格作为一个函数,并添加一个元值。
PS Theget_field()
函数来自高级自定义字段。