Guten Abend, ich hoffe, ich kann mich verständlich ausdrücken. Also, ich habe mir Templates gebastelt (auf der Grundlage der page.php), die dafür sorgen, dass jeweils die Posts einer Kategorie auf einer statischen Seite ausgegeben werden. Klappt auch wunderbar. Wenn es nun aber keine Posts in der Kategorie gibt - wie erzeuge ich eine Meldung mit einem Hinweis, dass zur Zeit keine entsprechenden Einträge vorhanden sind? (Zur Erklärung: es geht um Veranstaltungshinweise, und nicht jede Veranstaltungsart wird immer angeboten.)
Meldung "keine Posts" auf Seite ausgeben
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
schau dir den aufbau eines beispiel-loops an:
http://codex.wordpress.org/The_Loop_in_Action
http://codex.wordpress.org/The_Loop_in_Action#Ending_The_Loop -
Danke für die Links, ich habe mich nun die letzten Tage sehr eingehend mit dem Loop beschäftigt, und wenn ich das richtig sehe, muss die else-Anweisung nach der While-Schleife eingefügt werden. Wenn ich das aber mache, verschindet die gesamte Seite ... :( ... was mache ich bloß falsch? Hier mal der komplette Code:
PHP
Alles anzeigen<?php get_header(); ?> <div id="content-container"> <div id="content" role="main"> <?php query_posts('category_name=gespraeche&posts_per_page=-1'); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php if ( is_front_page() ) { ?> <h2 class="entry-title"><?php the_title(); ?></h2> <?php } else { ?> <h1 class="entry-title"><?php the_title(); ?></h1> <?php } ?> <div class="entry-content"> <?php the_content(); ?> <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'coraline' ), 'after' => '</div>' ) ); ?> <?php edit_post_link( __( 'Edit', 'coraline' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry-content --> </div><!-- #post-## --> <?php comments_template( '', true ); ?> <?php endwhile; ?> <?php else : ?> <?php _e('Keine Gespräche geplant'); ?> <?php endif; ?> </div><!-- #content --> </div><!-- #content-container --> <?php get_sidebar(); ?> <?php get_footer(); ?>Wenn ich die drei Zeilen zwischen else und endif weglasse, bekomme ich die leere Seite. Mit den drei Zeilen ist alles (also auch Header, Sidebar und Footer) verschwunden.
Ich habe auch schon versucht, nach dem endif noch den Query zurückzusetzen, weil das irgendwo empfohlen wurde:War aber auch wirkungslos (ist wohl auch nur bei mehreren Querys sinnvoll).
Bin für jeden Tipp dankbar.
Gruß, Barbara -
diese zeile am anfang des loops erlaubt kein 'else' (und am ende war wahrscheinlich auch kein 'endif' im original code):
aendere die zeile um:
der doppelpunkt sollte das problem loesen;
siehe auch http://php.net/manual/en/cont…tive-syntax.php -
Danke, das war's tatsächlich! Da wär ich natürlich nie drauf gekommen.
Du hattest recht, das endif war nicht in der ursprünglichen Datei. Aber ohne funktioniert's nicht.
Noch mal ganz herzlichen Dank!!!
Gruß, Barbara
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!