web-dev-qa-db-ja.com

ループ - 最初/最後の投稿の前後の投稿を取得する方法

私は自分のスライドに前と次の記事のタイトルを表示したいのですが、最初のスライドには前の記事のタイトルが表示されません。

$prev_post = $loop->posts[$loop->current_post - 1]; // ALWAYS NULL FOR FIRST POST :(
$next_post = $loop->posts[$loop->current_post + 1]; // ALWAYS NULL FOR THE LAST POST
echo $next_post->post_title;
echo $next_post->post_title; 

それを修正する簡単な方法はありますか?

2
Wordpressor

スライドを簡単にループできます。

$prev_index = ( $loop->current_post == 0 ) ? count( $loop->posts ) - 1 : $loop->current_post - 1;
$next_index = ( $loop->current_post == count( $loop->posts ) - 1 ) ? 0 : $loop->current_post + 1;

$prev_post = $loop->posts[ $prev_index ];
$next_post = $loop->posts[ $next_index ];

echo $next_post->post_title;
echo $next_post->post_title;

現在の投稿が最初の投稿の場合は前の投稿の最後の投稿を、現在の投稿が最後の投稿の場合は次の投稿の最初の投稿を取得します。

3
engelen