diff -r 346c88efed21 -r 5e2f62d02dcd wp/wp-content/themes/twentyfourteen/inc/widgets.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/wp-content/themes/twentyfourteen/inc/widgets.php Tue Jun 09 03:35:32 2015 +0200 @@ -0,0 +1,269 @@ + 'widget_twentyfourteen_ephemera', + 'description' => __( 'Use this widget to list your recent Aside, Quote, Video, Audio, Image, Gallery, and Link posts.', 'twentyfourteen' ), + ) ); + } + + /** + * Output the HTML for this widget. + * + * @access public + * @since Twenty Fourteen 1.0 + * + * @param array $args An array of standard parameters for widgets in this theme. + * @param array $instance An array of settings for this widget instance. + */ + public function widget( $args, $instance ) { + $format = isset( $instance['format'] ) && in_array( $instance['format'], $this->formats ) ? $instance['format'] : 'aside'; + + switch ( $format ) { + case 'image': + $format_string = __( 'Images', 'twentyfourteen' ); + $format_string_more = __( 'More images', 'twentyfourteen' ); + break; + case 'video': + $format_string = __( 'Videos', 'twentyfourteen' ); + $format_string_more = __( 'More videos', 'twentyfourteen' ); + break; + case 'audio': + $format_string = __( 'Audio', 'twentyfourteen' ); + $format_string_more = __( 'More audio', 'twentyfourteen' ); + break; + case 'quote': + $format_string = __( 'Quotes', 'twentyfourteen' ); + $format_string_more = __( 'More quotes', 'twentyfourteen' ); + break; + case 'link': + $format_string = __( 'Links', 'twentyfourteen' ); + $format_string_more = __( 'More links', 'twentyfourteen' ); + break; + case 'gallery': + $format_string = __( 'Galleries', 'twentyfourteen' ); + $format_string_more = __( 'More galleries', 'twentyfourteen' ); + break; + case 'aside': + default: + $format_string = __( 'Asides', 'twentyfourteen' ); + $format_string_more = __( 'More asides', 'twentyfourteen' ); + break; + } + + $number = empty( $instance['number'] ) ? 2 : absint( $instance['number'] ); + $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? $format_string : $instance['title'], $instance, $this->id_base ); + + $ephemera = new WP_Query( array( + 'order' => 'DESC', + 'posts_per_page' => $number, + 'no_found_rows' => true, + 'post_status' => 'publish', + 'post__not_in' => get_option( 'sticky_posts' ), + 'tax_query' => array( + array( + 'taxonomy' => 'post_format', + 'terms' => array( "post-format-$format" ), + 'field' => 'slug', + 'operator' => 'IN', + ), + ), + ) ); + + if ( $ephemera->have_posts() ) : + $tmp_content_width = $GLOBALS['content_width']; + $GLOBALS['content_width'] = 306; + + echo $args['before_widget']; + ?> +

+ +

+
    + + have_posts() ) : + $ephemera->the_post(); + $tmp_more = $GLOBALS['more']; + $GLOBALS['more'] = 0; + ?> +
  1. +
    > +
    + →', 'twentyfourteen' ) ); + else : + $images = array(); + + $galleries = get_post_galleries( get_the_ID(), false ); + if ( isset( $galleries[0]['ids'] ) ) + $images = explode( ',', $galleries[0]['ids'] ); + + if ( ! $images ) : + $images = get_posts( array( + 'fields' => 'ids', + 'numberposts' => -1, + 'order' => 'ASC', + 'orderby' => 'menu_order', + 'post_mime_type' => 'image', + 'post_parent' => get_the_ID(), + 'post_type' => 'attachment', + ) ); + endif; + + $total_images = count( $images ); + + if ( has_post_thumbnail() ) : + $post_thumbnail = get_the_post_thumbnail(); + elseif ( $total_images > 0 ) : + $image = reset( $images ); + $post_thumbnail = wp_get_attachment_image( $image, 'post-thumbnail' ); + endif; + + if ( ! empty ( $post_thumbnail ) ) : + ?> + + +

    + %2$s photo.', 'This gallery contains %2$s photos.', $total_images, 'twentyfourteen' ), + esc_url( get_permalink() ), + number_format_i18n( $total_images ) + ); + ?> +

    + →', 'twentyfourteen' ) ); + endif; + ?> +
    + +
    + +
    +
    +
  2. + + +
+ + →', 'twentyfourteen' ), $format_string_more ); + ?> + + formats ) ) { + $instance['format'] = $new_instance['format']; + } + + return $instance; + } + + /** + * Display the form for this widget on the Widgets page of the Admin area. + * + * @since Twenty Fourteen 1.0 + * + * @param array $instance + */ + function form( $instance ) { + $title = empty( $instance['title'] ) ? '' : esc_attr( $instance['title'] ); + $number = empty( $instance['number'] ) ? 2 : absint( $instance['number'] ); + $format = isset( $instance['format'] ) && in_array( $instance['format'], $this->formats ) ? $instance['format'] : 'aside'; + ?> +

+

+ +

+

+ +

+ +