7
votes

Boucle WordPress: Obtenez le nombre de post actuel à l'intérieur de la boucle

Lorsque vous êtes à l'intérieur de la boucle, je veux récupérer le compte post actuel.

Par exemple, après tous les 3 messages, je veux insérer une annonce.

Alors, comment puis-je obtenir la valeur du nombre de boucles?


0 commentaires

3 Réponses :


19
votes

Vous pouvez utiliser le membre actuel_post du wp_query instance d'objet pour obtenir l'itération post-itération actuelle; xxx

Remarque, si vous utilisez cette utilisation dans une fonction, vous devez mondialiser $ wp_query < / code>.


3 commentaires

J'ai essayé cette méthode. L'annonce est insérée avant et après tous les 3 messages! Comment puis-je l'obtenir pour insérer l'annonce uniquement après 3 messages.


@Kartikao pour référence future, cette réponse est toujours aussi légèrement imparfaite. Étant donné que les index commencent à 0, la première fois que le conditionnel est exécuté (la première itération de la boucle tandis), il retournera réellement true car 0 module tout numéro réel est toujours 0. Le code d'annonce est en cours d'être incorrectement inséré avant votre premier poste, quatrième message, septième post - etc. Le code mis à jour doit lire: ($ wp_query-> courant_post + 1)% 3 .


@Adammcarthur Insertion du code AD avant les quatrième et septième messages est correct étant donné la description de la question indiquant que les annonces doivent être insérées "après tous les 3 postes" . Vous avez raison pour que l'insertion d'une annonce avant que le premier message ne correspond pas à la spécification, mais votre correctif proposé - qui insérerait des annonces après les postes de 2e / 5ème / 8ème au lieu des postes de 3e / 6e / 9e à la demande - ne pas Soit.



0
votes

Pourquoi ne pas incrémenter une variable puis afficher vos annonces en cas de besoin? XXX


0 commentaires

0
votes

Ne savez pas pourquoi, mais les méthodes suggérées n'ont pas fonctionné pour moi, je devais recourir à la suivante xxx

plus sûre que de jouer avec des globaux si vous me demandez.


0 commentaires