WP несколько совпадений мета_запросов и двойной подсчет

#wordpress

#wordpress

Вопрос:

Я установил следующий мета_запрос. Я хотел бы добавить еще одно условие.

Моя проблема в том, что статья, которая соответствует обоим условиям meta_query, дважды подсчитывается по количеству (get_posts в конце строки.

Возможно ли добавить подобное условие? Если совпадают оба 1bb и 1aa, считайте, как если бы совпадал только 1bb.

 <?php
$args = array(
'category_name' => $cat,
'posts_per_page' => -1,
'post_type'   => 'post',
'post_status' => 'publish',

'meta_query' => array(
    'relation' => 'or',
        array(
        'key'=> '1bb',
        'value' => array($from , $to),
        'compare' => 'BETWEEN',
        'type' => 'DATE', 
        ),

        array(
        'key'=> '1aa',
        'value' => array($from , $to),
        'compare' => 'BETWEEN',
        'type' => 'DATE', 
        ),
    ),
);
echo count( get_posts( $args ) );
?>
  

Спасибо.

Ниже приведен дополнительный код, который я пытался предотвратить от двойного подсчета. Загрузка занимает слишком много времени, и вы не можете его использовать.

 'meta_query' => array(
    'relation' => 'or',

        array(                        
            'relation' => 'AND',
                array(
                    array(
                    'key'=> '1aa',
                    'value' => array($from , $to),
                    'compare' => 'BETWEEN',
                    'inclusive' => 'true',
                    'type' => 'DATE', 
                    ),

                   array(
                    'key'     => '1bb',
                    'compare' => 'NOT EXISTS',
                     ),
                ),
        ),

        array(
            'relation' => 'AND',
                array(
                    array(
                    'key'=> '1bb',
                    'value' => array($from , $to),
                    'compare' => 'BETWEEN',
                    'inclusive' => 'true',
                    'type' => 'DATE', 
                    ),

                   array(
                    'key'     => '1aa',
                    'compare' => 'NOT EXISTS',
                     ),
                ),
        ),

        array(
            'relation' => 'AND',
                array(
                    array(
                    'key'=> '1bb',
                    'value' => array($from , $to),
                    'compare' => 'BETWEEN',
                    'inclusive' => 'true',
                    'type' => 'DATE', 
                    ),

                   array(
                    'key'     => '1aa',
                    'compare' => 'EXISTS',
                     ),

                   array(
                    'key'     => '1bb',
                    'compare' => 'EXISTS',
                     ),                     
                ),
        ),

),
  

Комментарии:

1. вы пробовали использовать и вместо или в отношении?

2. Привет, Шах, спасибо за ваш комментарий. Я попробовал другой код, например, дополнительный, который я сейчас использую. Я не могу себе представить, как я могу избежать использования «или» в этом случае…

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

4. Вам просто нужно количество (число) или фактические данные?

5. Привет, Джонни Ти, спасибо за ваш комментарий. Я использую это $args для подсчета сообщений и подсчета количества продаж.