我开发一个新的WordPress主题与控制面板有超过100个选项。所以我问,是把所有的选项都存储在一个数组中,然后把它放在一个全局变量中使用,还是把每个选项都存储在一个单独的选项中?什么是更好的CPU使用率和网站速度。我注意到,该主题的主页有120多个查询。
sdnqo3pr1#
也许你应该创建一个选项数组,并使用serialize函数存储它(它将给予你一个字符串而不是数组,这样你就可以存储它)。然后,使用unserialize再次获得数组。为此选项数组使用一些缓存。WordPress提供了这个功能:
$result = wp_cache_get( 'my_result' ); if ( false === $result ) { $result = $wpdb->get_results( $query ); wp_cache_set( 'my_result', $result ); } // Do something with $result;
jmo0nnb32#
我知道这是一个很老的问题,但我只是想补充一下以前的答案。get_option()确实进行了数据库查询,然后将值存储在缓存中,以便在后续调用中使用。但这只会在当前页面加载第一次调用get_option()时发生。因此,当加载新页面时,get_option()将再次从数据库获取值并将其保存到该高速缓存中。但是如果你想更新数据库中的选项值,然后在同一个页面上使用新的值,那么get_option()将从该高速缓存中检索值(这是更新选项之前的旧值)。这就是为什么你需要更新该高速缓存。
get_option()
2条答案
按热度按时间sdnqo3pr1#
也许你应该创建一个选项数组,并使用serialize函数存储它(它将给予你一个字符串而不是数组,这样你就可以存储它)。然后,使用unserialize再次获得数组。
为此选项数组使用一些缓存。WordPress提供了这个功能:
jmo0nnb32#
我知道这是一个很老的问题,但我只是想补充一下以前的答案。
get_option()
确实进行了数据库查询,然后将值存储在缓存中,以便在后续调用中使用。但这只会在当前页面加载第一次调用get_option()
时发生。因此,当加载新页面时,get_option()
将再次从数据库获取值并将其保存到该高速缓存中。但是如果你想更新数据库中的选项值,然后在同一个页面上使用新的值,那么
get_option()
将从该高速缓存中检索值(这是更新选项之前的旧值)。这就是为什么你需要更新该高速缓存。