我在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;
答案 0 :(得分: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";
答案 1 :(得分: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]