我正在尝试限制每个页面请求的数据库读取数。目前,每次get_avatar
钩火,我打电话给get_option()
返回一些数据。这个$data
returned在页面请求的持续时间内不会更改,因此我有许多多余的调用get_option()
发生(因为get_avatar
在我的某些页面上多次激发)。
function my_check() {
$data = get_option( \'blah\' );
return $data;
}
function my_func( $avatar, $id_or_email, $size, $default, $alt ) {
if ( my_check() ) {
// Do something.
}
}
add_filter( \'get_avatar\', \'my_func\', 10, 5 );
我的第一个想法是使用面向对象的PHP
$data
一个类变量,但我觉得对于这个简单的场景来说,类太过了。然后我想
$data
一个全局变量,但后来意识到全局变量是不好的。所以我排除了这两种方法。
还有别的办法吗$data
变量是否在页面请求的持续时间内可用?我的目标是避免多次致电get_option()
.
Note: 的价值$data
可能在页面请求之间更改。
最合适的回答,由SO网友:Tom J Nowell 整理而成
一个类提供结构,如果它是你需要做的,那么就去做。另一种选择是全局变量,这是一种不好的做法,应该避免(并且使可靠的单元测试几乎不可能)
然而,您的整个前提是不必要的。WordPress已经将该选项存储在其缓存中,因此不会发生第二次数据库调用。
否则,答案是类或对象