wordpress — php отображает только последний результат цикла if

Я использую цикл на своем веб-сайте для отображения постоянных ссылок предыдущего сообщения.

<?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}

но, как вы можете себе представить, это не очень хорошее решение.

Я хотел бы запустить цикл и получить только последний пост $.

Есть ли способ добавить несколько php в мой цикл, чтобы получить только последний $ пост этого цикла?

Спасибо за вашу помощь,

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;
?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]