From 5edfa78c0b991c9af52bbd2c19aebe892782c1c1 Mon Sep 17 00:00:00 2001
From: Erick Hitter <ehitter@gmail.com>
Date: Sat, 29 Jun 2013 17:25:06 -0400
Subject: [PATCH] Convert get_settings() method to use a static variable store

---
 wp-revisions-control.php | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/wp-revisions-control.php b/wp-revisions-control.php
index d80309d..d45abde 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;
 	}
 
 	/**
-- 
GitLab