php只显示if循环的最后一个结果

时间:2016-12-10 20:49:36

标签: php wordpress for-loop postdata

我在我的网站上使用循环显示当前帖子的先前帖子永久链接。

<?php
global $post;
$current_post = $post;
for($i = 1; $i <= 30; $i++):
$post = get_previous_post();
setup_postdata($post); ?>

<?php if($post): ?>

<a href="<?php the_permalink(); ?>" title="post-<?php the_ID(); ?>" class="next_link">Next Posts</a>

<?php endif; ?>
<?php endfor;
wp_reset_postdata();
$post = $current_post; 
?>

使用这个循环我得到“下一个帖子”链接的30倍。 我想要做的只是获得这个循环的最后结果。

目前,我正在使用css和jquery来显示最后一个链接,使用这个css:

a.next_link {display:none}
a.next_link:last-child {display: block}

但你可以想象这不是一个好的解决方案。

我想运行循环,只获得最后的$ post。

有没有办法在我的循环中添加一些php才能获得此循环的最后$ post?

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

您想要做的是跳过之前的29个条目,因为WP没有为您提供开箱即用的方法。使用continue来操纵循环。

<?php
global $post;
$current_post = $post;
for($i = 1; $i <= 30; $i++):
$post = get_previous_post();
if ($i != 30):
  continue;
endif;
setup_postdata($post); ?>

<?php if($post): ?>

<a href="<?php the_permalink(); ?>" title="post-<?php the_ID(); ?>" class="next_link">Next Posts</a>

<?php endif; ?>
<?php endfor;
wp_reset_postdata();
$post = $current_post; 
?>