如何优化具有多个子循环(子查询)的WordPress网站以更快地加载

时间:2018-11-25 02:34:35

标签: php mysql wordpress

我想问一下如何优化或减少具有多个子循环的WordPress网站的查询,以更快地加载WordPress网站。

■现状

  • 为房地产中介机构构建了WordPress主题,并且具有150个房屋自定义帖子类型。
  • 首页具有五个不同的子循环,可根据其自定义字段条件和自定义分类法显示这些房屋职位,例如“新建”,“承包”(自定义字段),“近海”,“传统建筑” (自定义分类法)等等。
  • 这些多个子循环会使网站变慢,特别是对于首次访问的用户而言。
  • 我通过Chrome开发者工具的“网络”标签检查了加载时间,等待(TTFB)需要7秒钟以上
  • 注释掉子循环后,时间缩短到1秒以内,因此肯定会降低网站速度。

■问题

  • 有什么方法可以优化多个子循环?

■想法

  • 一种解决方案是获取规格更高的Web服务器,该解决方案也将执行,但可能仍需要优化代码。
  • pre_get_posts似乎仅适用于主查询,因此也许不能解决这种情况。 (正确吗?)
  • 使用一个主要查询来加载所有房屋帖子,并有条件地使用循环似乎是一个不错的解决方案,但是使用这些自定义字段和自定义分类法进行条件声明非常复杂。 (参考:https://premium.wpmudev.org/blog/how-to-use-one-query-to-run-multiple-loops/
  • 以下是示例子循环代码

    <?php
         $args = array(
                'post_type' => 'real_estate',
                'taxonomy' => 're_category',
                'term' => 'sea',
                'orderby' => 'modified',
                'meta_query' => array(
                  array(
                   'key' => 'show_top_sea',
                   'value' => '"show"',
                   'compare' => 'LIKE'
                  )
                ),
              'no_found_rows' => true,
            );
       include locate_template( 'template/front-template.php' );
    ?>
    

0 个答案:

没有答案