Несколько запросов на странице «Главная страница – загрузка страницы / скорость сайта»

Я познакомился с клиентом, который разработал собственный сайт журнала моды. Моя компания передала мне проект, чтобы сделать его с помощью WordPress. Когда я делал полный шаблон для сайта, я нашел его полную мысль: и для меня это абсолютно жутко; потому что в дизайне для домашней страницы было много блоков, не менее 20 блоков, и каждый из блоков требует нового WP_Query() (и только сейчас из этого потока мне было известно, что я прав, создавая новый WP_Query() для каждого из блоки).

И последний продукт был проклят медленным – как я и предполагал.

Я не мастер WordPress, так как я понял, что WP_Query() когда он вызывается, он попадает в db с его запросом и извлекает данные в соответствии с запросом. Таким образом, на этом сайте, на домашней странице, он попадает 20 раз, а затем извлекает данные и делает это медленнее.

В этом сценарии я думаю о некоторых решениях ускорения , таких как:

  • Разделив цикл для каждого из сообщений с общей функцией, чтобы он загружал один раз с разными параметрами каждый раз
  • Некоторые базовые вещи CSS для ускорения компоновки
  • Разделите общие вещи на разные файлы и get_template_part() их с помощью get_template_part() , так что обычная вещь будет загружать одно время и эхо несколько раз, где это необходимо
  • Использование LazyLoad для изображений сайта, чтобы они не мешали скорости сайта, когда сначала важно содержание и макет
  • Кэширование содержимого сайта
  • WP Smush.it изображения
  • Если это возможно и не создает конфликт, используйте сжатие .js

С этими мыслями я могу ошибаться в большинстве своих концепций, но я нашел их логически хорошими.

Таким образом, конечные вопросы:

  • Что можно сделать дальше, чтобы ускорить работу сайта с несколькими запросами (т.е. 20 разных запросов)?
  • Или, есть ли лучшее решение вместо использования WP_Query() для каждого из запросов?

Solutions Collecting From Web of "Несколько запросов на странице «Главная страница – загрузка страницы / скорость сайта»"

сохранять запросы в переходные процессы в течение определенного времени с помощью set_transient (); и получить сохраненный запрос, используя get_transient (); это значительно сократит время загрузки вашего сайта, поскольку вы заявили, что используете 20 запросов на странице, тогда вам нужно установить время истечения переходных процессов, чтобы все переходные процессы не истекали сразу.

пример использования:

 $my_query = get_transient('my_query'); if (!$my_query) { // run query $args = array( // query args ); $my_query = new WP_Query($args); // set transient for 3 hours set_transient('my_query', $my_query, 60*60*3); } // run your loop if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); // do your stuff endwhile; endif; 

Вы должны использовать системы кеша. Без кеширования ваш сайт будет медленно. Используйте APC или memcache для увеличения скорости вашей домашней страницы.

или используйте redis .