作为WordPress开发人员,我们经常需要从WordPress数据库中检索符合特定条件的文章、页面和其他内容。通常,我们不需要构建SQL查询(通常我们不应该),因为WP_Query类及其方法为我们提供了一种从数据库中检索数据的安全有效的方法。我们只需要声明一个参数数组,$query对象就会构建实际的SQL查询。 在这篇文章中,我将假设您已经了解WP_Query类的基础知识、它的方法和属性,以及在哪里可以找到可用变量的列表。 我们将重点介绍WP_Query类提供的参数,专门用于优化SQL查询,减少执行时间和资源消耗。 当流量和内容有限时,我们通常不会关心查询的效率。WordPress构建了优化良好的SQL查询,并提供了一个开箱即用的缓存系统。 当流量和网站内容显着增长时——多达数千个文章——那么我们必须考虑查询执行时间。 我们的工具箱 WP_Query – 为什么我们不计算行数 缓存或不缓存 返回的字段 我们的工具箱 我将向您展示的代码已经通过Query Monitor测试,这是一个免费插件,提供有关查询性能、触发挂钩、HTTP请求、重写规则等的基本信息。 作为插件的替代方案,我们可以强制WordPress存储查询信息,在wp-config.php中声明以下常量: define( ‘SAVEQUERIES’, true ); 当SAVEQUERIES设置为true时,WordPress会在$wpdb->queries数组中注册查询和一堆有用的信息。因此,调用者函数的名称和每个查询的执行间隔可以通过在像footer.php这样的模板文件中添加以下代码来打印: if ( current_user_can( ‘administrator’ ) ) { global $wpdb; echo ‘<pre>’; print_r( $wpdb->queries ); echo ‘</pre>’; } 以下是回显内容的示例: [4] => Array ( [0] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = ‘post’ […]

































