我想我需要一些指导。我在存档模板页面上有一个自定义帖子列表,其中显示了每个自定义帖子的信息。它们使用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() 函数来自高级自定义字段。