我正在构建一个简单的缓存类,我想使用这个类来缓存查询。我最初的想法是创建一个Query
类并使用它来处理所有查询,这意味着Query
类将使用Cache
类来检查是否存在已保存的查询,否则它将运行WP_query
或$wpdb
并缓存结果。
到目前为止,一切都很好,我想更进一步。wordpress默认运行的查询是什么?Wordpress的核心函数不会使用我的类,所以我的问题是:有没有办法在查询执行级别连接到Wordpress?我能找到的唯一挂钩是关于修改查询的挂钩,但我想要的是一个处理查询执行本身的挂钩(这样我就可以停止查询执行并从缓存中检索查询将搜索的数据)。
例如,对于wordpress结构,我猜所有查询都会在$wpdb->query(\'FINAL BUILT QUERY HERE\');
. 我不知道这是不是真的,但这是有道理的。因此,如果是这种情况,我将寻找一个操作过滤器,它以字符串或参数数组的形式接收最终查询,并期望查询结果作为返回(听起来像是一个不安全的钩子,但你明白了)。默认情况下,挂钩将运行$wpdb->query
在输入数据上,这就是我重写此行为并在实际执行之前为缓存查询检查添加绕道的原因。
我希望我的例子有助于理解我在寻找什么,有人知道怎么做吗?