Вопрос о множественной сортировке в Word Press - PullRequest
1 голос
/ 29 марта 2020

У меня есть страница, на которой показаны результаты онлайн-лиги ФИФА, таблицы должны быть отсортированы по очкам, а затем по дифференциалу целей. Я собираю данные для побед, доктора aws, потерь, целей и целей против. Вот мой код -


            <?php
                $args = array( 
                'post_type' => 'post', 
                'cat' => '5',
                'numberposts' => 12,
                'meta_query'    => array( 
                    'relation' => 'AND',
                    '_fifa_w' => array(
                        'key'       => '_fifa_w',
                    ),
                    '_fifa_d' => array(
                        'key'       => '_fifa_d',
                    ),
                    '_fifa_gf' => array(
                        'key'       => '_fifa_gf',
                    ),
                    '_fifa_ga' => array(
                        'key'       => '_fifa_ga',
                    ),
                ),
            'orderby' => array(
                '_fifa_w'       => 'DESC',
                '_fifa_d'     => 'DESC',
                '_fifa_gf'     => 'ASC',
                '_fifa_ga'     => 'DESC'
                )
            );
                $product_posts = get_posts( $args );
            ?>

Это сортирует по общему количеству очков, но ничего не делает для дифференциала целей. Если я исключу _fifa_w (wins) и _fifa_d (dr aws) из кода, подобного следующему -

          'orderby' => array(
                '_fifa_gf'     => 'ASC',
                '_fifa_ga'     => 'DESC'
                )
            );

Тогда он сортируется по дифференциалу целей правильно.

Как мне его получить все работают вместе?

1 Ответ

1 голос
/ 29 марта 2020

Попробуйте:

'orderby' => '_fifa_w _fifa_d _fifa_gf-_fifa_ga',
'order' => 'DESC'

Я не использую Wordpress, но идея состоит в том, чтобы отсортировать по первым двум столбцам обычным образом, а затем отсортировать вычисленную разницу между целями и целями против.

Вероятно, это хорошая идея не слепо доверять мне, а смотреть на визуализированный запрос, чтобы быть уверенным, что Wordpress не использует обратную косую черту математического выражения. Возможно, $wp_query->request покажет вам, что визуализируется.

В противном случае в вашем наборе результатов всегда есть опция php, равная usort().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...