我正在尝试根据输入到分配的MetaBox中的数字对我的自定义帖子类型进行数字排序。我输入的数字带有逗号,并正确显示在数据库中。但是,当基于下面的代码显示交易时,它会将所有的第一个数字一起列出1、2、3、4、5、6,最低的数字排在最前面,而最高的数字排在最后。问题是当涉及到逗号6,000时,列在6,000,000旁边。我想做的是sis首先列出高度数字(deal_amounts),最后列出最低的数量。我正在尝试根据总数而不是第一个数字对它们进行排序。
$transaction = new WP_Query( array(
'post_type' => 'transactions',
'paged' => $paged,
'posts_per_page' => 50,
'orderby' => array( 'meta_value' => 'ASC' ),
'meta_key' => 'deal_amount',
) );
if ( $transaction->have_posts() ) :
答案 0 :(得分:0)
在metap_query中使用meta_value_num进行订购。
$args = array(
'post_status' => 'publish',
'post_type' => 'transactions',
'meta_key' => 'deal_amount',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
答案 1 :(得分:0)
工作示例
<?php
$transaction = new WP_Query( array(
'post_type' => 'transactions',
'paged' => $paged,
'posts_per_page' => 50,
'orderby' => array( 'meta_value_num' => 'ASC' ),
'meta_key' => 'deal_amount',
) );
if ( $transaction->have_posts() ) : ?>
<?php
while ( $transaction->have_posts() ) : $transaction->the_post();
$deal_amount = get_post_meta( get_the_ID(), 'deal_amount', true );
$property_type = get_post_meta( get_the_ID(), 'property_type', true );
$property_size = get_post_meta( get_the_ID(), 'property_size', true );
?>
<article class="col">
<div class="trans-content">
<?php the_title('<h3>', '</h3>'); ?>
<?php echo '<h4>$' . number_format($deal_amount) . '</h4>'; ?>
<?php echo esc_html($property_type); ?><br>
<?php echo esc_html($property_size); ?><br>
<?php $terms_as_text = get_the_term_list( $post->ID, 'loan-type', '', ', ', '' ) ; echo strip_tags($terms_as_text); ?></p>
</div>
<?php edit_post_link('edit'); ?>
</article>
<?php endwhile; wp_reset_postdata(); ?>
<?php else : endif; ?>