]> scripts.mit.edu Git - autoinstallsdev/wordpress.git/blobdiff - wp-content/themes/twentyfourteen/inc/featured-content.php
WordPress 3.9
[autoinstallsdev/wordpress.git] / wp-content / themes / twentyfourteen / inc / featured-content.php
index 64858745718562866c177e6f26b895729552f7fd..3f9dc411a4f519c77d2ceff0d0abf8ce556bdcdf 100644 (file)
@@ -86,6 +86,7 @@ class Featured_Content {
                add_filter( $filter,                              array( __CLASS__, 'get_featured_posts' )    );
                add_action( 'customize_register',                 array( __CLASS__, 'customize_register' ), 9 );
                add_action( 'admin_init',                         array( __CLASS__, 'register_setting'   )    );
+               add_action( 'switch_theme',                       array( __CLASS__, 'delete_transient'   )    );
                add_action( 'save_post',                          array( __CLASS__, 'delete_transient'   )    );
                add_action( 'delete_post_tag',                    array( __CLASS__, 'delete_post_tag'    )    );
                add_action( 'customize_controls_enqueue_scripts', array( __CLASS__, 'enqueue_scripts'    )    );
@@ -168,7 +169,7 @@ class Featured_Content {
 
                // Query for featured posts.
                $featured = get_posts( array(
-                       'numberposts' => $settings['quantity'],
+                       'numberposts' => self::$max_posts,
                        'tax_query'   => array(
                                array(
                                        'field'    => 'term_id',
@@ -203,7 +204,7 @@ class Featured_Content {
         */
        public static function get_sticky_posts() {
                $settings = self::get_setting();
-               return array_slice( get_option( 'sticky_posts', array() ), 0, $settings['quantity'] );
+               return array_slice( get_option( 'sticky_posts', array() ), 0, self::$max_posts );
        }
 
        /**
@@ -283,7 +284,6 @@ class Featured_Content {
         * @since Twenty Fourteen 1.0
         *
         * @param int $tag_id The term_id of the tag that has been deleted.
-        * @return void
         */
        public static function delete_post_tag( $tag_id ) {
                $settings = self::get_setting();
@@ -329,8 +329,9 @@ class Featured_Content {
                        return $terms;
                }
 
+               $settings = self::get_setting();
                foreach( $terms as $order => $term ) {
-                       if ( self::get_setting( 'tag-id' ) == $term->term_id && 'post_tag' == $term->taxonomy ) {
+                       if ( ( $settings['tag-id'] === $term->term_id || $settings['tag-name'] === $term->name ) && 'post_tag' === $term->taxonomy ) {
                                unset( $terms[ $order ] );
                        }
                }
@@ -372,8 +373,9 @@ class Featured_Content {
                        return $terms;
                }
 
+               $settings = self::get_setting();
                foreach( $terms as $order => $term ) {
-                       if ( self::get_setting( 'tag-id' ) == $term->term_id ) {
+                       if ( ( $settings['tag-id'] === $term->term_id || $settings['tag-name'] === $term->name ) && 'post_tag' === $term->taxonomy ) {
                                unset( $terms[ $term->term_id ] );
                        }
                }
@@ -387,8 +389,6 @@ class Featured_Content {
         * @static
         * @access public
         * @since Twenty Fourteen 1.0
-        *
-        * @return void
         */
        public static function register_setting() {
                register_setting( 'featured-content', 'featured-content', array( __CLASS__, 'validate_settings' ) );
@@ -406,14 +406,17 @@ class Featured_Content {
        public static function customize_register( $wp_customize ) {
                $wp_customize->add_section( 'featured_content', array(
                        'title'          => __( 'Featured Content', 'twentyfourteen' ),
-                       'description'    => sprintf( __( 'Use the <a href="%1$s">"featured" tag</a> to feature your posts. You can change this to a tag of your choice; if no posts match the tag, <a href="%2$s">sticky posts</a> will be displayed instead.', 'twentyfourteen' ), admin_url( '/edit.php?tag=featured' ), admin_url( '/edit.php?show_sticky=1' ) ),
+                       'description'    => sprintf( __( 'Use a <a href="%1$s">tag</a> to feature your posts. If no posts match the tag, <a href="%2$s">sticky posts</a> will be displayed instead.', 'twentyfourteen' ),
+                               esc_url( add_query_arg( 'tag', _x( 'featured', 'featured content default tag slug', 'twentyfourteen' ), admin_url( 'edit.php' ) ) ),
+                               admin_url( 'edit.php?show_sticky=1' )
+                       ),
                        'priority'       => 130,
                        'theme_supports' => 'featured-content',
                ) );
 
                // Add Featured Content settings.
                $wp_customize->add_setting( 'featured-content[tag-name]', array(
-                       'default'              => 'featured',
+                       'default'              => _x( 'featured', 'featured content default tag slug', 'twentyfourteen' ),
                        'type'                 => 'option',
                        'sanitize_js_callback' => array( __CLASS__, 'delete_transient' ),
                ) );
@@ -472,14 +475,12 @@ class Featured_Content {
 
                $defaults = array(
                        'hide-tag' => 1,
-                       'quantity' => 6,
                        'tag-id'   => 0,
-                       'tag-name' => 'featured',
+                       'tag-name' => _x( 'featured', 'featured content default tag slug', 'twentyfourteen' ),
                );
 
                $options = wp_parse_args( $saved, $defaults );
                $options = array_intersect_key( $options, $defaults );
-               $options['quantity'] = self::sanitize_quantity( $options['quantity'] );
 
                if ( 'all' != $key ) {
                        return isset( $options[ $key ] ) ? $options[ $key ] : false;
@@ -523,10 +524,6 @@ class Featured_Content {
                        $output['tag-name'] = $input['tag-name'];
                }
 
-               if ( isset( $input['quantity'] ) ) {
-                       $output['quantity'] = self::sanitize_quantity( $input['quantity'] );
-               }
-
                $output['hide-tag'] = isset( $input['hide-tag'] ) && $input['hide-tag'] ? 1 : 0;
 
                // Delete the featured post ids transient.
@@ -534,29 +531,6 @@ class Featured_Content {
 
                return $output;
        }
-
-       /**
-        * Sanitize quantity of featured posts.
-        *
-        * @static
-        * @access public
-        * @since Twenty Fourteen 1.0
-        *
-        * @param int $input The value to sanitize.
-        * @return int A number between 1 and FeaturedContent::$max_posts.
-        */
-       public static function sanitize_quantity( $input ) {
-               $quantity = absint( $input );
-
-               if ( $quantity > self::$max_posts ) {
-                       $quantity = self::$max_posts;
-               } else if ( 1 > $quantity ) {
-                       $quantity = 1;
-               }
-
-               return $quantity;
-       }
-
 } // Featured_Content
 
 Featured_Content::setup();