@@ -101,7 +101,18 @@ function perflab_aao_autoloaded_options_test() {
101101 */
102102function perflab_aao_autoloaded_options_size () {
103103 global $ wpdb ;
104- return (int ) $ wpdb ->get_var ( 'SELECT SUM(LENGTH(option_value)) FROM ' . $ wpdb ->prefix . 'options WHERE autoload = \'yes \'' );
104+
105+ $ autoload_values = perflab_aao_get_autoload_values_to_autoload ();
106+
107+ return (int ) $ wpdb ->get_var (
108+ $ wpdb ->prepare (
109+ sprintf (
110+ "SELECT SUM(LENGTH(option_value)) FROM $ wpdb ->options WHERE autoload IN (%s) " ,
111+ implode ( ', ' , array_fill ( 0 , count ( $ autoload_values ), '%s ' ) )
112+ ),
113+ $ autoload_values
114+ )
115+ );
105116}
106117
107118/**
@@ -130,7 +141,17 @@ function perflab_aao_query_autoloaded_options() {
130141 */
131142 $ option_threshold = apply_filters ( 'perflab_aao_autoloaded_options_table_threshold ' , 100 );
132143
133- return $ wpdb ->get_results ( $ wpdb ->prepare ( "SELECT option_name, LENGTH(option_value) AS option_value_length FROM {$ wpdb ->options } WHERE autoload='yes' AND LENGTH(option_value) > %d ORDER BY option_value_length DESC LIMIT 20 " , $ option_threshold ) );
144+ $ autoload_values = perflab_aao_get_autoload_values_to_autoload ();
145+
146+ return $ wpdb ->get_results (
147+ $ wpdb ->prepare (
148+ sprintf (
149+ "SELECT option_name, LENGTH(option_value) AS option_value_length FROM {$ wpdb ->options } WHERE autoload IN (%s) " ,
150+ implode ( ', ' , array_fill ( 0 , count ( $ autoload_values ), '%s ' ) )
151+ ) . ' AND LENGTH(option_value) > %d ORDER BY option_value_length DESC LIMIT 20 ' ,
152+ array_merge ( $ autoload_values , array ( $ option_threshold ) )
153+ )
154+ );
134155}
135156
136157/**
@@ -227,3 +248,18 @@ function perflab_aao_get_disabled_autoloaded_options_table() {
227248
228249 return $ html_table ;
229250}
251+
252+ /**
253+ * Gets the autoload values in the database that should trigger their option to be autoloaded.
254+ *
255+ * @since n.e.x.t
256+ *
257+ * @return array List of autoload values.
258+ */
259+ function perflab_aao_get_autoload_values_to_autoload () {
260+ if ( function_exists ( 'wp_autoload_values_to_autoload ' ) ) {
261+ return wp_autoload_values_to_autoload ();
262+ }
263+
264+ return array ( 'yes ' );
265+ }
0 commit comments