diff --git a/wp-revisions-control.php b/wp-revisions-control.php index d80309dfecd5e0dcb4a355043461ce1d43550e06..d45abde4926aeb299ec92529a972de442b0af672 100644 --- a/wp-revisions-control.php +++ b/wp-revisions-control.php @@ -32,6 +32,7 @@ class WP_Revisions_Control { * Class variables */ private static $post_types = array(); + private static $settings = array(); private $settings_page = 'writing'; private $settings_section = 'wp_revisions_control'; @@ -172,20 +173,24 @@ class WP_Revisions_Control { * @return array */ private function get_settings() { - $post_types = $this->get_post_types(); + if ( empty( self::$settings ) ) { + $post_types = $this->get_post_types(); - $settings = get_option( $this->settings_section, array() ); + $settings = get_option( $this->settings_section, array() ); - $merged_settings = array(); + $merged_settings = array(); - foreach ( $post_types as $post_type => $name ) { - if ( array_key_exists( $post_type, $settings ) ) - $merged_settings[ $post_type ] = (int) $settings[ $post_type ]; - else - $merged_settings[ $post_type ] = -1; + foreach ( $post_types as $post_type => $name ) { + if ( array_key_exists( $post_type, $settings ) ) + $merged_settings[ $post_type ] = (int) $settings[ $post_type ]; + else + $merged_settings[ $post_type ] = -1; + } + + self::$settings = $merged_settings; } - return $merged_settings; + return self::$settings; } /**