私はget_next_post()
を作る簡潔な方法を探しています
最後の投稿に到達したら、先頭に戻ります。
現在のところ、最終投稿に到達すると停止します。
これがコーデックスからの数行のコードです。
私が使っているものと似ている文脈のために:
<?php $next_post = get_next_post();
if (!empty( $next_post )): ?>
<a href="<?php echo get_permalink( $next_post->ID ); ?>">
<?php echo $next_post->post_title; ?>
</a>
<?php endif; ?>
http://codex.wordpress.org/Function_Reference/get_next_post
ご提案いただきありがとうございます。
get_next_post
は本当に「始まり」が何であるかを知りません。 get_next_post
はget_adjacent_posts
を使用します。あなたが ソース を見れば、その関数がそれ自身の問い合わせを実行して次の(または前の)投稿を決定することがわかります現在の投稿に対する相対位置。リストをループしません。
「最初の」投稿を取得するには、最初の投稿を返すという条件を満たす、決定したパラメータに基づいて新しいクエリを実行する必要があります。このようなもの:
while (have_posts()) {
the_post();
the_title();
$next_post = get_next_post();
if (empty($next_post)) {
echo 'empty';
$args = array(
'posts_per_page' => 1,
);
$first = new WP_Query($args);
var_dump($first->post);
}
echo '<br>';
}
また、 "next"と "previous"はソート順に相対的で、 "next"は最も近い新しい投稿を意味します。通常のデフォルトのアーカイブループでは、リストの最初の投稿に「次の」投稿はありません。実際にprevious_post_link
を使いたいのではないかと思いますが、それは推測です。