2016-12-10 17 views
1

J'utilise une boucle sur mon site Web pour afficher les permaliens de posts précédents d'un post actuel.php n'affiche que le dernier résultat d'une boucle 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; 
?> 

utilisant cette boucle je reçois 30 fois le lien « prochains messages ». Ce que je veux faire, c'est seulement obtenir le dernier résultat de cette boucle.

pour le moment, je suis en utilisant css et jquery pour afficher uniquement le dernier maillon, en utilisant cette css:

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

mais comme vous pouvez l'imaginer ce n'est pas une belle solution.

Je voudrais exécuter la boucle et seulement obtenir le dernier $ post.

Y a-t-il un moyen d'ajouter du php à ma boucle pour obtenir seulement le dernier $ post de cette boucle?

Merci pour votre aide,

+0

Sortie après 'endfor' plutôt qu'à l'intérieur. Pourquoi lancer le 'for' si vous ne vous souciez pas des 29 autres? – chris85

+0

Jetez une boucle et juste '$ post = get_previous_post();'? –

+0

@u_mulder, j'affiche 29 messages sur mon post actuel, avant cette boucle, donc j'ai besoin d'obtenir les 30 messages précédents, et ensuite afficher uniquement le dernier de ces 30 messages, pour aller à mon prochain poste. C'est un truc pour ajouter un offset à la fonction get_previous_post(). – mmdwc

Répondre

1

Qu'est-ce que vous voulez faire est de sauter les 29 entrées précédentes, puisque WP ne vous fournit pas une façon de le faire hors de la boîte. Utilisez continue pour manipuler votre boucle.

<?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; 
?> 
+0

fonctionne comme un charme, merci beaucoup! Je ne savais pas à propos de la fonction continue ... je vais l'utiliser beaucoup! – mmdwc