Оптимизация большого запроса WP

У меня есть WP Query вроде этого:

      $map_args = array(
        'post_type'       => 'spots',
        'post_status'     => 'publish',
        'posts_per_page'  => -1
      ); 
      $markers_query = new WP_Query($map_args); ?>
      <?php if ($markers_query->have_posts()) : ?>
        <?php while ($markers_query->have_posts()) : $markers_query->the_post();
          $terms = get_the_terms( $post->ID , 'spots_categories' ); 
          $map_marker = get_field( 'map_marker', $terms[0]->taxonomy . '_' . $terms[0]->term_id ); 
          $tooltip_photo = get_the_post_thumbnail($post->ID, 'thumbnail', array('class' => 'marker-pop__photo'));
          $marker_url = esc_url(get_the_permalink()); 
          if ( $spot_location = get_field( 'spot_location' ) ) : 
            $markersArray[] = array($spot_location['lat'], $spot_location['lng'], get_the_title(), 'http://localhost/icamp/app/wp-content/themes/iCamp/images/logo-black.svg', $tooltip_photo, $marker_url );         
          endif; ?>
        <?php endwhile; ?>
      <?php endif; ?>
      <?php wp_reset_query(); ?>
      <?php wp_reset_postdata(); ?>

«пятна» — это мой настраиваемый тип сообщения, а «пятна_категории» — это моя настраиваемая таксономия. У меня сейчас более 10.000 CPT в спотах, так что этот запрос очень медленный. Мне нужны все мои сообщения (здесь нельзя использовать нумерацию страниц), потому что мне нужно указать эти места на карте листовок (булавки с заголовком, миниатюрой и настраиваемым маркером). Есть ли лучший и более быстрый способ перечислить мои пользовательские булавки с местоположением на карте листовки? Этот запрос действительно медленный.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *