これは私のsingle.phpファイルです:
私はprevious_post_link();
とnext_post_link();
を使っています。
Wordpressのコーデックスでは、 それはループの内側でしか機能しない ということです。
<?php
/**
* The Template for displaying all single posts.
*
* @package WordPress
* @subpackage Starkers
* @since Starkers 3.0
*/
get_header(); ?>
<?php get_sidebar(); ?>
<div id="content">
<?php // Create and run custom loop
$custom_posts = new WP_Query();
$custom_posts->query('post_type=blocks&location=Work§ion=Intro');
while ($custom_posts->have_posts()) : $custom_posts->the_post();
?> <div class="block-1">
<?php the_post_thumbnail('large'); ?>
</div>
<?php endwhile; ?>
<?php // Create and run custom loop
$custom_posts = new WP_Query();
$custom_posts->query('post_type=blocks&location=Work§ion=Tagline');
while ($custom_posts->have_posts()) : $custom_posts->the_post();
?> <div class="block-2 padding-top">
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php // Display the thumbnails of previous and next posts ?>
<div class="block-2 border-top">
<?php // Display the thumbnail of the previous post ?>
<div class="float-left"> <?php
$prevPost = get_previous_post();
$prevthumbnail = get_the_post_thumbnail($prevPost->ID); ?>
<h2><?php previous_post_link('%link', 'Previous'); ?></h2>
<?php previous_post_link('%link', $prevthumbnail); ?>
</div>
<?php // Display the thumbnail of the next post ?>
<div class="float-right"> <?php
$nextPost = get_next_post();
$nextthumbnail = get_the_post_thumbnail($nextPost->ID); ?>
<h2><?php next_post_link('%link', 'Next'); ?></h2>
<?php next_post_link('%link', $nextthumbnail); ?>
</div>
</div>
<?php // Create and run custom loop
$custom_posts = new WP_Query();
$custom_posts->query('post_type=blocks&location=Front Page§ion=Sidebar');
while ($custom_posts->have_posts()) : $custom_posts->the_post();
?> <div class="block-3 border-top">
<h2><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></h2>
<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
<p><?php the_excerpt(); ?></p>
<p><?php echo get_post_meta($post->ID, "Other_Work", true); ?></p>
</div>
<?php endwhile; ?>
<?php // Start the main loop
if ( have_posts() ) while ( have_posts() ) : the_post();
?> <div class="block-4 border-top">
<?php the_content(); ?>
</div><!-- .entry-content -->
<?php endwhile; // end of the loop. ?>
<?php get_sidebar('secondary'); ?>
</div><!-- #content -->
<?php get_footer(); ?>
「ループの内側」とは、ループの実行時に設定されるグローバル変数($post
など)からのデータに関数が依存することを意味します。これは必ずしもquery_posts()
のメインループによって行われるわけではないことに注意してください。
特定のコードでは、これらの変数は$custom_posts->the_post()
呼び出しで埋められ、その後、wp_reset_query()
はそれらの値を初期状態に戻します。