From 90cd78479a8168f341bcda3ba9ca0fca12a07926 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sun, 12 May 2019 17:21:59 -0700
Subject: [PATCH] PHPCS

---
 inc/class-eth-redirect-to-latest.php | 125 +++++++++++++++++++--------
 1 file changed, 90 insertions(+), 35 deletions(-)

diff --git a/inc/class-eth-redirect-to-latest.php b/inc/class-eth-redirect-to-latest.php
index dbbc281..82bfa6b 100644
--- a/inc/class-eth-redirect-to-latest.php
+++ b/inc/class-eth-redirect-to-latest.php
@@ -14,37 +14,71 @@ class ETH_Redirect_To_Latest_Post {
 	 */
 
 	/**
-	 * Singleton
+	 * Singleton.
+	 *
+	 * @var self
 	 */
-	private static $instance = null;
+	private static $instance;
 
 	/**
-	 * Instantiate singleton
+	 * Instantiate singleton.
 	 */
 	public static function get_instance() {
 		if ( ! is_a( self::$instance, __CLASS__ ) ) {
-			self::$instance = new self;
+			self::$instance = new self();
 		}
 
 		return self::$instance;
 	}
 
 	/**
-	 * Dummy magic methods
+	 * Dummy magic method.
 	 */
-	public function __clone() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; uh?', 'eth_redirect_to_latest_post' ), '0.1' ); }
-	public function __wakeup() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; uh?', 'eth_redirect_to_latest_post' ), '0.1' ); }
-	public function __call( $name = '', $args = array() ) { unset( $name, $args ); return null; }
+	public function __clone() {
+		_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; uh?', 'eth_redirect_to_latest_post' ), '0.1' );
+	}
 
 	/**
-	 * Class properties
+	 * Dummy magic method.
+	 */
+	public function __wakeup() {
+		_doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin&#8217; uh?', 'eth_redirect_to_latest_post' ), '0.1' );
+	}
+
+	/**
+	 * Dummy magic method.
+	 *
+	 * @param string $name Method name.
+	 * @param array  $args Method arguments.
+	 * @return null
+	 */
+	public function __call( $name = '', $args = array() ) {
+		return null;
+	}
+
+	/**
+	 * Plugin's option name.
+	 *
+	 * @var string
 	 */
 	private $plugin_option_name = 'eth-redirect-to-latest';
-	private $slug               = '';
-	private $default_slug       = '';
 
 	/**
-	 * Register plugin's setup action
+	 * Plugin's slug.
+	 *
+	 * @var string
+	 */
+	private $slug = '';
+
+	/**
+	 * Plugin's fallback slug.
+	 *
+	 * @var string
+	 */
+	private $default_slug = '';
+
+	/**
+	 * Register plugin's setup action.
 	 */
 	private function __construct() {
 		add_action( 'init', array( $this, 'action_init' ) );
@@ -54,7 +88,7 @@ class ETH_Redirect_To_Latest_Post {
 	}
 
 	/**
-	 * Translate plugin slug
+	 * Translate plugin slug.
 	 */
 	public function action_init() {
 		$this->default_slug = __( 'latest', 'eth_redirect_to_latest_post' );
@@ -71,35 +105,43 @@ class ETH_Redirect_To_Latest_Post {
 	}
 
 	/**
-	 * Redirect to the latest post any requests made to plugin's slug
+	 * Redirect to the latest post any requests made to plugin's slug.
+	 *
+	 * @param WP $r WP object.
 	 */
 	public function action_parse_request( $r ) {
-		// Nothing to do if permalinks aren't enabled
+		// Nothing to do if permalinks aren't enabled.
 		if ( ! $r->did_permalink ) {
 			return;
 		}
 
-		// By default, there's also nothing to do
+		// By default, there's also nothing to do.
 		$should_intercept = false;
 
-		// Check if request is for our slug
-		// The first condition catches permastructs that are more than just post slug, whereas the second catches for slug-only permalinks
+		/**
+		 * Check if request is for our slug.
+		 *
+		 * The first condition catches permastructs that are more than just
+		 * post slug, whereas the second catches for slug-only permalinks.
+		 */
 		if ( isset( $r->query_vars['pagename'] ) && $this->slug === $r->query_vars['pagename'] ) {
 			$should_intercept = true;
 		} elseif ( isset( $r->query_vars['name'] ) && $this->slug === $r->query_vars['name'] ) {
 			$should_intercept = true;
 		}
 
-		// Handle redirection
+		// Handle redirection.
 		if ( $should_intercept ) {
-			$latest = get_posts( array(
-				'posts_per_page'   => 1,
-				'post_type'        => 'post',
-				'orderby'          => 'date',
-				'order'            => 'desc',
-				'suppress_filters' => false,
-				'no_found_rows'    => true,
-			) );
+			$latest = get_posts(
+				array(
+					'posts_per_page'   => 1,
+					'post_type'        => 'post',
+					'orderby'          => 'date',
+					'order'            => 'desc',
+					'suppress_filters' => false,
+					'no_found_rows'    => true,
+				)
+			);
 
 			if ( is_array( $latest ) && ! empty( $latest ) ) {
 				$latest = array_shift( $latest );
@@ -110,7 +152,9 @@ class ETH_Redirect_To_Latest_Post {
 					$dest = user_trailingslashit( home_url() );
 				}
 
-				wp_redirect( $dest, 302 ); // Not validating in case other plugins redirect elsewhere
+				// Not validating in case other plugins redirect elsewhere.
+				// phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
+				wp_redirect( $dest, 302 );
 				exit;
 			}
 		}
@@ -123,15 +167,15 @@ class ETH_Redirect_To_Latest_Post {
 	/**
 	 * Save plugin settings and register settings field
 	 *
-	 * Permalinks screen is a snowflake, hence the custom saving handler
+	 * Permalinks screen is a snowflake, hence the custom saving handler.
 	 */
 	public function action_admin_init() {
-		// Make sure user has necessary permissions first
+		// Make sure user has necessary permissions first.
 		if ( ! current_user_can( 'manage_options' ) ) {
 			return;
 		}
 
-		// Save custom option, permalinks screen is a snowflake and doesn't fully use the Settings API
+		// Save custom option, permalinks screen is a snowflake and doesn't fully use the Settings API.
 		global $pagenow;
 
 		if ( 'options-permalink.php' === $pagenow && isset( $_POST[ $this->plugin_option_name ] ) ) {
@@ -146,23 +190,34 @@ class ETH_Redirect_To_Latest_Post {
 			update_option( $this->plugin_option_name, $_slug );
 		}
 
-		// Add custom input field to permalinks screen
+		// Add custom input field to permalinks screen.
 		add_settings_field( $this->plugin_option_name, __( '&quot;Latest post&quot; slug', 'eth_redirect_to_latest_post' ), array( $this, 'settings_field' ), 'permalink', 'optional' );
 	}
 
 	/**
-	 * Render settings field
+	 * Render settings field.
 	 */
 	public function settings_field() {
 		?>
 		<input type="text" name="<?php echo esc_attr( $this->plugin_option_name ); ?>" value="<?php echo esc_attr( $this->slug ); ?>" class="regular-text" />
 
-		<p class="description"><?php printf( __( 'Set the slug that will redirect to the latest published post. The default value is %s.', 'eth_redirect_to_latest_post' ), '<code style="font-style: normal;">' . $this->default_slug . '</code>' ); ?></p>
+		<p class="description">
+			<?php
+			printf(
+				/* translators: 1. Default slug, wrapped in a <code> tag. */
+				esc_html__(
+					'Set the slug that will redirect to the latest published post. The default value is %s.',
+					'eth_redirect_to_latest_post'
+				),
+				'<code style="font-style: normal;">' . esc_html( $this->default_slug ) . '</code>'
+			);
+			?>
+		</p>
 		<?php
 	}
 }
 
 /**
- * One instance to rule them all
+ * One instance to rule them all.
  */
 ETH_Redirect_To_Latest_Post::get_instance();
-- 
GitLab