0

我在我的 Wordpress 网站上保存了许多自定义帖子类型的商店项目,并以字符串形式$nn.nn或简单地以自定义元的形式附加了各种价格$n

我想输出以下内容:

价格范围从 £nn.nn 到 £nn.nn?

所以,我想查询价格元,只显示最低和最高。

是否可以在 PHP 中执行此操作?

到目前为止,这就是我想出的所有方法,但它只是输出一个用逗号分隔的所有价格列表:

$args = array('post_type' => 'shop-items',);

$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ):

    echo 'Prices range from ';

    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();

        $price  = get_post_meta( get_the_ID(), 'itemprice', true );

        echo '$price . ', ';

    endwhile;

endif;
4

2 回答 2

1

首先声明变量(将包含结果):

$min_price = INF;
$max_price = -INF;

在你的循环中做:

$price = get_post_meta( get_the_ID(), 'itemprice', true );
if ($price < $min_price)
    $min_price = $price;
if ($price > $max_price)
    $max_price = $price;

最后写(在if之前):

echo "$min_price to $max_price";
于 2013-04-12T11:11:07.957 回答
1

用于sort()价格数组

if ( $the_query->have_posts() ):
$pricearray=array();
echo 'Prices range from ';

// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

    $price  = get_post_meta( get_the_ID(), 'itemprice', true );
$price=str_replace("£","",$price);
if(!empty($price)){
     $pricearray[]= $price;
 }else{
 $pricearray[]= "0";
 }
endwhile;

endif;

sort($pricearray, SORT_NUMERIC);
$minprice=$pricearray[0];
$maxprice=$pricearray[count($pricearray)-1]
于 2013-04-12T11:18:25.027 回答