diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2011-11-27 12:23:12 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2011-11-27 12:23:12 -0500 |
commit | 8e2064bbd878ac93438a6616cbf4af21a0f41edd (patch) | |
tree | 113cd09cd2dd11d02455d575037dd1f32bb4aaea /loop.php |
I'm not planning on maintaining this, I just figured I'd put it in git in
case I ever want it.
This has already been cleaned up a lot.
I might one day do the work to make it a proper child theme (it was forked
too many versions ago for it to be clean), but probably not.
Diffstat (limited to 'loop.php')
-rw-r--r-- | loop.php | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/loop.php b/loop.php new file mode 100644 index 0000000..b5c6c1b --- /dev/null +++ b/loop.php @@ -0,0 +1,213 @@ +<!-- BEGIN ltsHome: loop.php -->
+<?php
+/**
+ * The loop that displays posts.
+ *
+ * The loop displays the posts and the post content. See
+ * http://codex.wordpress.org/The_Loop to understand it and
+ * http://codex.wordpress.org/Template_Tags to understand
+ * the tags used in it.
+ *
+ * This can be overridden in child themes with loop.php or
+ * loop-template.php, where 'template' is the loop context
+ * requested by a template. For example, loop-index.php would
+ * be used if it exists and we ask for the loop with:
+ * <code>get_template_part( 'loop', 'index' );</code>
+ *
+ * @package WordPress
+ * @subpackage Twenty_Ten
+ * @since Twenty Ten 1.0
+ */
+
+global $head;
+
+/* Display navigation to next/previous pages when applicable */
+if ( $wp_query->max_num_pages > 1 ) {
+ ?>
+ <div id="nav-above" class="navigation">
+ <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyten' ) ); ?></div>
+ <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
+ </div><!-- #nav-above -->
+ <?php
+}
+
+/* If there are no posts to display, such as an empty archive page */ ?>
+
+<?php if ( ! have_posts() ) {
+ ?>
+ <div id="post-0" class="post error404 not-found">
+ <?php
+ echo "<h$head class=\"entry-title\">";
+ _e( 'Not Found', 'twentyten' );
+ echo "</h$head>";
+ $head++;
+ ?>
+ <div class="entry-content">
+ <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'twentyten' ); ?></p>
+ <?php get_search_form(); ?>
+ </div><!-- .entry-content -->
+ <?php $head--; ?>
+ </div><!-- #post-0 -->
+ <?php
+}
+
+/* Start the Loop.
+ *
+ * In Twenty Ten we use the same loop in multiple contexts.
+ * It is broken into three main parts: when we're displaying
+ * posts that are in the gallery category, when we're displaying
+ * posts in the asides category, and finally all other posts.
+ *
+ * Additionally, we sometimes check for whether we are on an
+ * archive page, a search page, etc., allowing for small differences
+ * in the loop on each template without actually duplicating
+ * the rest of the loop that is shared.
+ *
+ * Without further ado, the loop:
+ */
+while ( have_posts() ) {
+ the_post();
+ ?>
+ <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+ <?php echo "<h$head" ?> class="entry-title"><a
+ href="<?php the_permalink(); ?>"
+ title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>"
+ rel="bookmark"
+ ><?php the_title(); ?></a><?php echo "</h$head>"; $head++; ?>
+ <div class="entry-meta">
+ <?php twentyten_posted_on(); ?>
+ </div><!-- .entry-meta -->
+ <?php
+
+ /* How to display posts of the Gallery format. The gallery category is the old way. */
+ if (
+ ( function_exists( 'get_post_format' ) && 'gallery' == get_post_format( $post->ID ) )
+ || in_category( _x( 'gallery', 'gallery category slug', 'twentyten' ) )
+ ) { ?>
+ <div class="entry-content">
+ <?php
+ if ( post_password_required() ) {
+ the_content();
+ } else {
+ $images = get_children( array(
+ 'post_parent' => $post->ID,
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'orderby' => 'menu_order',
+ 'order' => 'ASC',
+ 'numberposts' => 999 ) );
+ if ( $images ) {
+ $total_images = count( $images );
+ $image = array_shift( $images );
+ $image_img_tag = wp_get_attachment_image( $image->ID, 'thumbnail' );
+ ?>
+ <div class="gallery-thumb">
+ <a class="size-thumbnail" href="<?php the_permalink(); ?>"><?php echo $image_img_tag; ?></a>
+ </div><!-- .gallery-thumb -->
+ <p><em><?php
+ printf(
+ _n(
+ 'This gallery contains <a %1$s>%2$s photo</a>.',
+ 'This gallery contains <a %1$s>%2$s photos</a>.',
+ $total_images,
+ 'twentyten'
+ ),
+ 'href="' . get_permalink() . '" title="' . sprintf(
+ esc_attr__( 'Permalink to %s', 'twentyten' ),
+ the_title_attribute( 'echo=0' )
+ ) . '" rel="bookmark"',
+ number_format_i18n( $total_images )
+ );
+ ?></em></p>
+ <?php
+ }
+ the_excerpt();
+ }
+ ?>
+ </div><!-- .entry-content -->
+
+ <div class="entry-utility">
+ <?php
+ if ( function_exists( 'get_post_format' ) && 'gallery' == get_post_format( $post->ID ) ) {
+ ?><a
+ href="<?php echo get_post_format_link( 'gallery' ); ?>"
+ title="<?php esc_attr_e( 'View Galleries', 'twentyten' ); ?>"
+ ><?php _e( 'More Galleries', 'twentyten' ); ?></a>
+ <span class="meta-sep">|</span>
+ <?php
+ } elseif ( in_category(_x( 'gallery', 'gallery category slug', 'twentyten' )) ) {
+ ?><a
+ href="<?php echo get_term_link( _x( 'gallery', 'gallery category slug', 'twentyten' ), 'category' ); ?>"
+ title="<?php esc_attr_e( 'View posts in the Gallery category', 'twentyten' ); ?>"
+ ><?php _e( 'More Galleries', 'twentyten' ); ?></a>
+ <span class="meta-sep">|</span>
+ <?php
+ } ?>
+ <span class="comments-link"><?php
+ comments_popup_link( __( 'Leave a comment', 'twentyten' ), __( '1 Comment', 'twentyten' ), __( '% Comments', 'twentyten' ) );
+ ?></span>
+ <?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">', '</span>' ); ?>
+ </div><!-- .entry-utility -->
+ <?php
+ /* How to display all other posts. */
+ } else {
+ if ( is_archive() || is_search() ) { // Only display excerpts for archives and search.
+ ?>
+ <div class="entry-summary">
+ <?php the_excerpt(); ?>
+ </div><!-- .entry-summary -->
+ <?php
+ } else {
+ ?>
+ <div class="entry-content">
+ <?php
+ the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'twentyten' ) );
+ wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) );
+ ?>
+ </div><!-- .entry-content -->
+ <?php
+ }
+ ?>
+ <div class="entry-utility">
+ <?php
+ if ( count( get_the_category() ) ) {
+ ?>
+ <span class="cat-links">
+ <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-cat-links', get_the_category_list( ', ' ) ); ?>
+ </span>
+ <span class="meta-sep">|</span>
+ <?php
+ }
+ $tags_list = get_the_tag_list( '', ', ' );
+ if ( $tags_list ) {
+ ?>
+ <span class="tag-links">
+ <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?>
+ </span>
+ <span class="meta-sep">|</span>
+ <?php
+ }
+ ?>
+ <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'twentyten' ), __( '1 Comment', 'twentyten' ), __( '% Comments', 'twentyten' ) ); ?></span>
+ <?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">', '</span>' ); ?>
+ </div><!-- .entry-utility -->
+ <?php
+ comments_template( '', true );
+ } // This was the if statement that broke the loop into three parts based on categories.
+ $head--;
+ ?>
+ </div><!-- #post-## -->
+ <?php
+} // End the loop. Whew.
+
+/* Display navigation to next/previous pages when applicable */
+if ( $wp_query->max_num_pages > 1 ) {
+ ?>
+ <div id="nav-below" class="navigation">
+ <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyten' ) ); ?></div>
+ <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
+ </div><!-- #nav-below -->
+ <?php
+}
+?>
+<!-- END ltsHome: loop.php -->
\ No newline at end of file |