Created
November 17, 2011 20:21
-
-
Save carlynorama/1374396 to your computer and use it in GitHub Desktop.
Sticky Posts With Recent Post - Step 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<section class="recent-posts"> | |
<?php | |
/** | |
* Begin the featured posts section. | |
* | |
* See if we have any sticky posts and use them to create our featured posts. | |
*/ | |
$sticky = get_option( 'sticky_posts' ); | |
// Proceed only if sticky posts exist. | |
if ( ! empty( $sticky ) ) : | |
$featured_args = array( | |
'post__in' => $sticky, | |
'post_status' => 'publish', | |
'posts_per_page' => 10, | |
'no_found_rows' => true, | |
); | |
// The Featured Posts query. | |
$featured = new WP_Query( $featured_args ); | |
// Proceed only if published posts exist | |
if ( $featured->have_posts() ) : ?> | |
<h1 class="showcase-heading"><?php _e( 'Featured Post', 'twentyeleven' ); ?></h1> | |
<?php while ( $featured->have_posts() ) : $featured->the_post(); | |
// Set $more to 0 in order to only get the first part of the post. | |
global $more; | |
$more = 0; | |
get_template_part( 'content', get_post_format() ); | |
endwhile; ?> | |
<!-- .featured-posts --> | |
<?php endif; // End check for published posts. ?> | |
<?php endif; // End check for sticky posts. ?> | |
<?php | |
/** | |
* Begin the recent posts section. | |
* | |
*/ | |
?> | |
<h1 class="showcase-heading"><?php _e( 'Recent Posts', 'twentyeleven' ); ?></h1> | |
<?php | |
// Display our recent posts, showing full content for the very latest, ignoring Aside posts. | |
$recent_args = array( | |
'order' => 'DESC', | |
'post__not_in' => get_option( 'sticky_posts' ), | |
'tax_query' => array( | |
array( | |
'taxonomy' => 'post_format', | |
'terms' => array( 'post-format-aside', 'post-format-link', 'post-format-quote', 'post-format-status' ), | |
'field' => 'slug', | |
'operator' => 'NOT IN', | |
), | |
), | |
'no_found_rows' => true, | |
); | |
// Our new query for the Recent Posts section. | |
$recent = new WP_Query( $recent_args ); | |
// The first Recent post is displayed normally | |
if ( $recent->have_posts() ) : $recent->the_post(); | |
// Set $more to 0 in order to only get the first part of the post. | |
global $more; | |
$more = 0; | |
get_template_part( 'content', get_post_format() ); | |
echo '<ol class="other-recent-posts">'; | |
endif; | |
// For all other recent posts, just display the title and comment status. | |
while ( $recent->have_posts() ) : $recent->the_post(); ?> | |
<li class="entry-title"> | |
<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> | |
<span class="comments-link"> | |
<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?> | |
</span> | |
</li> | |
<?php | |
endwhile; | |
// If we had some posts, close the <ol> | |
if ( $recent->post_count > 0 ) | |
echo '</ol>'; | |
?> | |
</section><!-- .recent-posts --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment