Заказать числовые значения с помощью WP_Query - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь отсортировать свой пользовательский тип поста по номерам, которые вводятся в назначенный MetaBox.Числа, которые я ввожу, имеют запятые и правильно отображаются в базе данных.Однако, когда транзакции отображаются на основе приведенного ниже кода, он перечисляет все первые числа вместе 1, 2, 3, 4, 5, 6 с наименьшим первым номером и последним номером высоты.Проблема в том, что когда дело доходит до запятых, 6000 перечисляются рядом с 6 000 000.То, что я пытаюсь сделать, это перечислить сначала номера высот (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() ) :

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Рабочий пример

 <?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; ?>
0 голосов
/ 27 ноября 2018

использовать meta_value_num для orderby в wp_query.

$args = array(
        'post_status' => 'publish',
        'post_type' => 'transactions',
        'meta_key' => 'deal_amount',
        'orderby' => 'meta_value_num',
        'order' => 'ASC'
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...