X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/wordpress.git/blobdiff_plain/ceb5a929e00123b4e224977c6b5a149f6431b250..41578db67d72562346e4dbb2a14889b23d522813:/wp-content/themes/twentyfourteen/inc/featured-content.php diff --git a/wp-content/themes/twentyfourteen/inc/featured-content.php b/wp-content/themes/twentyfourteen/inc/featured-content.php index 64858745..3f9dc411 100644 --- a/wp-content/themes/twentyfourteen/inc/featured-content.php +++ b/wp-content/themes/twentyfourteen/inc/featured-content.php @@ -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 "featured" tag to feature your posts. You can change this to a tag of your choice; if no posts match the tag, sticky posts will be displayed instead.', 'twentyfourteen' ), admin_url( '/edit.php?tag=featured' ), admin_url( '/edit.php?show_sticky=1' ) ), + 'description' => sprintf( __( 'Use a tag to feature your posts. If no posts match the tag, sticky posts 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();