优化自定义POST类型查询

时间:2015-10-08 作者:WPDEVE

我不确定之前是否涵盖过这一点——我当然找不到任何相关的内容。

我正在开发一个相当不错的摄影网站,它使用了几种不同的自定义帖子类型。目前网站的流量很小,每月只有几千次访问。

该网站是在Genesis上运行的,我的孩子主题是一个完全自定义的主题。

以下是我的基本查询:

<?php
    $args = array( \'post_type\' => \'venues\', \'orderby\' => \'menu_order\', \'order\' => \'ASC\');
    $loop = new WP_Query( $args );
    if( $loop->have_posts() ):
    while( $loop->have_posts() ): $loop->the_post(); global $post;
?>

   <a href="<?php echo get_permalink();?>">
      <h3 itemprop="headline"><?php echo get_the_title(); ?></h3>
   </a>
   <p itemprop="description"><?php the_excerpt() ?></p>

<?php       
   endwhile;
   endif;
?>
WP\\u查询与我的查询完全相同,尽管获取标题和摘录的HTML略有不同。

该网站以相当快的速度加载,在存档页面上加载了大约800ms的内容,其中包含18篇文章,每篇文章包含大约200kb的缩略图。

我的服务器是一个运行2GB RAM、Centos和Apache、PHP 5.5 FPM和Varnish的VPS。该网站运行的PHP限制为125MB,W3总缓存和其他4个最小插件(Yoast SEO、Ithemes security、ACF和Ninja Forms),因此在我看来,它的安装量不是特别大。该服务器还运行着其他7个轻量级WP安装。

我的问题是-我是否可以优化自定义帖子类型查询以提高效率?存档页面仅显示文章标题、显示图像和文章摘录的高级自定义字段。

我看过一些关于使用get\\u post和绕过缓存来帮助提高性能的博客,但我并没有注意到任何区别。

我知道这个网站与其他网站相比并不是很慢,而且儿童主题确实非常精简(我有优化OCD!)但我只是想知道我是否可以进一步优化查询。

提前谢谢,D

1 个回复
SO网友:Rarst

目前还不清楚的是,对于总页面负载(包括资产和网络开销)(这很好)还是仅页面生成时间(不太好),您的意思是800ms。

在任何情况下,您都犯了一个很大的错误,即猜测该查询是您的性能瓶颈。这不是性能优化的工作方式。

你需要首先衡量发生了什么,并从中得出任何结论。有高级WP工具(Laps、查询监视器等)和低级PHP工具(xhprof、blackfire等)。

一般来说,WP post查询很难进行优化。WP主要使用数据库作为哑数据存储,在为请求生成SQL方面相当不错。你的问题看起来也不复杂。

如果你想把它推得更远,只缓存数据通常是可行的。听起来您已经在使用Varnish for pages来实现这一点了,但您仍然可以显式地缓存位和片段以供重用,从而提高总体性能。看见Transients API.

相关推荐