Zurück   WordPress Deutschland Forum > Support > Allgemeines

Antwort
 
Themen-Optionen Ansicht
Alt 04.09.2008, 11:53   #1 (permalink)
PostRank: 9
 
Benutzerbild von Ammaletu
 
Registriert seit: 14.07.2007
Beiträge: 1.429
have_posts im Loop verwenden

Mal wieder eine kleine Frage: Ich möchte in meinem Loop testen, ob noch weitere Beiträge kommen, weil ich dann einen Spacer dazwischen ausgeben würde. Von Iteratoren aus der Programmierung kennt man das ja, dass man im Loop so oft man möchte hasNext() oder so aufrufen kann. Bei WordPress führt folgendes aber lustigerweise zu einer Endlosschleife:

PHP-Code:
while (have_posts() : the_post()) {
  ...
  if (
have_posts()) { ... }

Offensichtlich wird innerhalb von have_posts() die Methode rewind_posts() aufgerufen. Klar kann ich die Methode kopieren und anpassen für meinen Zweck. Bevor ich das mache dachte ich frage ich mal ob es eine einfachere Variante gibt. Hm, kann man die Anzahl der Beiträge auslesen?!
__________________
"Life brings hope and pain, but revenge never brings redemption." || Mein Blog
Ammaletu ist offline   Mit Zitat antworten
Alt 04.09.2008, 12:28   #2 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.834
Zitat:
Zitat von Ammaletu Beitrag anzeigen
Hm, kann man die Anzahl der Beiträge auslesen?!
Es gibt ne Property found_posts

Code:
$wp_query->found_posts;
Ich nutze das z.b. für die Ausgabe der gefundenen Ergebnisse bei einer Suche, musst mal gucken ob das immer gesetzt ist.
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist offline   Mit Zitat antworten
Alt 18.11.2008, 10:25   #3 (permalink)
PostRank: 9
 
Benutzerbild von Ammaletu
 
Registriert seit: 14.07.2007
Beiträge: 1.429
Nur zur Info für andere mit dem gleichen Problem: Ich habe das jetzt über die folgende Funktion gelöst. Danke marX für den Hinweis, ich glaube das hatte mich da auf die richtige Spur gebracht.

PHP-Code:
/**
 * Returns true if there is another post in the loop, false otherwise, but
 * doesn't rewind the posts like have_posts() does.
 * 
 * @return True if there is a next post in the loop, false otherwise.
 */
function my_hasNextPost() {
  global 
$wp_query;
  return (
$wp_query->current_post $wp_query->post_count);

__________________
"Life brings hope and pain, but revenge never brings redemption." || Mein Blog
Ammaletu ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt