~antivirtel/brs-wp/trunk

« back to all changes in this revision

Viewing changes to wp-content/themes/twentyeleven/showcase.php

  • Committer: B. Roland
  • Date: 2012-09-19 21:15:51 UTC
  • Revision ID: roland@roland-laptop-20120919211551-o5wbt3ri12rwsje8
zbench 1.3.5 frissítése

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
 * Template Name: Showcase Template
4
 
 * Description: A Page Template that showcases Sticky Posts, Asides, and Blog Posts
5
 
 *
6
 
 * The showcase template in Twenty Eleven consists of a featured posts section using sticky posts,
7
 
 * another recent posts area (with the latest post shown in full and the rest as a list)
8
 
 * and a left sidebar holding aside posts.
9
 
 *
10
 
 * We are creating two queries to fetch the proper posts and a custom widget for the sidebar.
11
 
 *
12
 
 * @package WordPress
13
 
 * @subpackage Twenty_Eleven
14
 
 * @since Twenty Eleven 1.0
15
 
 */
16
 
 
17
 
// Enqueue showcase script for the slider
18
 
wp_enqueue_script( 'twentyeleven-showcase', get_template_directory_uri() . '/js/showcase.js', array( 'jquery' ), '2011-04-28' );
19
 
 
20
 
get_header(); ?>
21
 
 
22
 
                <div id="primary" class="showcase">
23
 
                        <div id="content" role="main">
24
 
 
25
 
                                <?php while ( have_posts() ) : the_post(); ?>
26
 
 
27
 
                                <?php
28
 
                                        /**
29
 
                                         * We are using a heading by rendering the_content
30
 
                                         * If we have content for this page, let's display it.
31
 
                                         */
32
 
                                        if ( '' != get_the_content() )
33
 
                                                get_template_part( 'content', 'intro' );
34
 
                                ?>
35
 
 
36
 
                                <?php endwhile; ?>
37
 
 
38
 
                                <?php
39
 
                                        /**
40
 
                                         * Begin the featured posts section.
41
 
                                         *
42
 
                                         * See if we have any sticky posts and use them to create our featured posts.
43
 
                                         * We limit the featured posts at ten.
44
 
                                         */
45
 
                                        $sticky = get_option( 'sticky_posts' );
46
 
 
47
 
                                        // Proceed only if sticky posts exist.
48
 
                                        if ( ! empty( $sticky ) ) :
49
 
 
50
 
                                        $featured_args = array(
51
 
                                                'post__in' => $sticky,
52
 
                                                'post_status' => 'publish',
53
 
                                                'posts_per_page' => 10,
54
 
                                                'no_found_rows' => true,
55
 
                                        );
56
 
 
57
 
                                        // The Featured Posts query.
58
 
                                        $featured = new WP_Query( $featured_args );
59
 
 
60
 
                                        // Proceed only if published posts exist
61
 
                                        if ( $featured->have_posts() ) :
62
 
 
63
 
                                        /**
64
 
                                         * We will need to count featured posts starting from zero
65
 
                                         * to create the slider navigation.
66
 
                                         */
67
 
                                        $counter_slider = 0;
68
 
 
69
 
                                        // Compatibility with versions of WordPress prior to 3.4.
70
 
                                        if ( function_exists( 'get_custom_header' ) )
71
 
                                                $header_image_width = get_theme_support( 'custom-header', 'width' );
72
 
                                        else
73
 
                                                $header_image_width = HEADER_IMAGE_WIDTH;
74
 
                                ?>
75
 
 
76
 
                                <div class="featured-posts">
77
 
                                        <h1 class="showcase-heading"><?php _e( 'Featured Post', 'twentyeleven' ); ?></h1>
78
 
 
79
 
                                <?php
80
 
                                        // Let's roll.
81
 
                                        while ( $featured->have_posts() ) : $featured->the_post();
82
 
 
83
 
                                        // Increase the counter.
84
 
                                        $counter_slider++;
85
 
 
86
 
                                        /**
87
 
                                         * We're going to add a class to our featured post for featured images
88
 
                                         * by default it'll have the feature-text class.
89
 
                                         */
90
 
                                        $feature_class = 'feature-text';
91
 
 
92
 
                                        if ( has_post_thumbnail() ) {
93
 
                                                // ... but if it has a featured image let's add some class
94
 
                                                $feature_class = 'feature-image small';
95
 
 
96
 
                                                // Hang on. Let's check this here image out.
97
 
                                                $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array( $header_image_width, $header_image_width ) );
98
 
 
99
 
                                                // Is it bigger than or equal to our header?
100
 
                                                if ( $image[1] >= $header_image_width ) {
101
 
                                                        // If bigger, let's add a BIGGER class. It's EXTRA classy now.
102
 
                                                        $feature_class = 'feature-image large';
103
 
                                                }
104
 
                                        }
105
 
                                        ?>
106
 
 
107
 
                                        <section class="featured-post <?php echo $feature_class; ?>" id="featured-post-<?php echo $counter_slider; ?>">
108
 
 
109
 
                                                <?php
110
 
                                                        /**
111
 
                                                         * If the thumbnail is as big as the header image
112
 
                                                         * make it a large featured post, otherwise render it small
113
 
                                                         */
114
 
                                                        if ( has_post_thumbnail() ) {
115
 
                                                                if ( $image[1] >= $header_image_width )
116
 
                                                                        $thumbnail_size = 'large-feature';
117
 
                                                                else
118
 
                                                                        $thumbnail_size = 'small-feature';
119
 
                                                                ?>
120
 
                                                                <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail( $thumbnail_size ); ?></a>
121
 
                                                                <?php
122
 
                                                        }
123
 
                                                ?>
124
 
                                                <?php get_template_part( 'content', 'featured' ); ?>
125
 
                                        </section>
126
 
                                <?php endwhile; ?>
127
 
 
128
 
                                <?php
129
 
                                        // Show slider only if we have more than one featured post.
130
 
                                        if ( $featured->post_count > 1 ) :
131
 
                                ?>
132
 
                                <nav class="feature-slider">
133
 
                                        <ul>
134
 
                                        <?php
135
 
 
136
 
                                                // Reset the counter so that we end up with matching elements
137
 
                                        $counter_slider = 0;
138
 
 
139
 
                                                // Begin from zero
140
 
                                        rewind_posts();
141
 
 
142
 
                                                // Let's roll again.
143
 
                                        while ( $featured->have_posts() ) : $featured->the_post();
144
 
                                                $counter_slider++;
145
 
                                                        if ( 1 == $counter_slider )
146
 
                                                                $class = 'class="active"';
147
 
                                                        else
148
 
                                                                $class = '';
149
 
                                        ?>
150
 
                                                <li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php printf( esc_attr__( 'Featuring: %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" <?php echo $class; ?>></a></li>
151
 
                                        <?php endwhile; ?>
152
 
                                        </ul>
153
 
                                </nav>
154
 
                                <?php endif; // End check for more than one sticky post. ?>
155
 
                                </div><!-- .featured-posts -->
156
 
                                <?php endif; // End check for published posts. ?>
157
 
                                <?php endif; // End check for sticky posts. ?>
158
 
 
159
 
                                <section class="recent-posts">
160
 
                                        <h1 class="showcase-heading"><?php _e( 'Recent Posts', 'twentyeleven' ); ?></h1>
161
 
 
162
 
                                        <?php
163
 
 
164
 
                                        // Display our recent posts, showing full content for the very latest, ignoring Aside posts.
165
 
                                        $recent_args = array(
166
 
                                                'order' => 'DESC',
167
 
                                                'post__not_in' => get_option( 'sticky_posts' ),
168
 
                                                'tax_query' => array(
169
 
                                                        array(
170
 
                                                                'taxonomy' => 'post_format',
171
 
                                                                'terms' => array( 'post-format-aside', 'post-format-link', 'post-format-quote', 'post-format-status' ),
172
 
                                                                'field' => 'slug',
173
 
                                                                'operator' => 'NOT IN',
174
 
                                                        ),
175
 
                                                ),
176
 
                                                'no_found_rows' => true,
177
 
                                        );
178
 
 
179
 
                                        // Our new query for the Recent Posts section.
180
 
                                        $recent = new WP_Query( $recent_args );
181
 
 
182
 
                                        // The first Recent post is displayed normally
183
 
                                        if ( $recent->have_posts() ) : $recent->the_post();
184
 
 
185
 
                                                // Set $more to 0 in order to only get the first part of the post.
186
 
                                                global $more;
187
 
                                                $more = 0;
188
 
 
189
 
                                                get_template_part( 'content', get_post_format() );
190
 
 
191
 
                                                echo '<ol class="other-recent-posts">';
192
 
 
193
 
                                        endif;
194
 
 
195
 
                                        // For all other recent posts, just display the title and comment status.
196
 
                                        while ( $recent->have_posts() ) : $recent->the_post(); ?>
197
 
 
198
 
                                                <li class="entry-title">
199
 
                                                        <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
200
 
                                                        <span class="comments-link">
201
 
                                                                <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?>
202
 
                                                        </span>
203
 
                                                </li>
204
 
 
205
 
                                        <?php
206
 
                                        endwhile;
207
 
 
208
 
                                        // If we had some posts, close the <ol>
209
 
                                        if ( $recent->post_count > 0 )
210
 
                                                echo '</ol>';
211
 
                                        ?>
212
 
                                </section><!-- .recent-posts -->
213
 
 
214
 
                                <div class="widget-area" role="complementary">
215
 
                                        <?php if ( ! dynamic_sidebar( 'sidebar-2' ) ) : ?>
216
 
 
217
 
                                                <?php
218
 
                                                the_widget( 'Twenty_Eleven_Ephemera_Widget', '', array( 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) );
219
 
                                                ?>
220
 
 
221
 
                                        <?php endif; // end sidebar widget area ?>
222
 
                                </div><!-- .widget-area -->
223
 
 
224
 
                        </div><!-- #content -->
225
 
                </div><!-- #primary -->
226
 
 
227
 
<?php get_footer(); ?>
 
 
b'\\ No newline at end of file'