Support » Allgemeine Fragen » Letzte Beiträge verbergen

  • Gelöst j_spaceman

    (@nothinghalosix)


    Hi,
    ich hoffe es kann mir hier jemand helfen. Ich habe eine Beitragseite wo die letzten 6 Beiträge ausgegeben werden. Gleich darunter befindet sich ein Button für mehr laden. Klappt alles perfekt.

    Wenn ich den Button klicke erscheinen die restliche Beiträge, natürlich auch wieder die letzen 6, die ich verbergen möchte.
    Hier mein Code:

    <ul class="beitrag">
    
                            <?php $the_query = new WP_Query( 'posts_per_page=6' ); ?>
    
                            <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
    
    <li><a>"><?php the_post_thumbnail( array( $attr) ); ?>
                                        <p class="post-title"><?php the_title(); ?></p>
                                        <p class="date"><?php the_time('d.m.Y'); ?></p>
                                    </a>
                                </li>
                                <?php endwhile; wp_reset_postdata(); ?>
    
                            <div class="button active hide"><h5>mehr laden</h5></div>
                            <div class="block">
                                <?php $the_query = new WP_Query( 'posts_per_page=18&offset6' ); ?>
    
                                <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
    
    <li><a>"><?php the_post_thumbnail( array( $attr) ); ?>
                                            <p class="post-title"><?php the_title(); ?></p>
                                            <p class="date"><?php the_time('d.m.Y'); ?></p>
                                        </a>
                                    </li>
                                <?php endwhile; wp_reset_postdata(); ?>
                            </div>
                        <!-- end beitrag -->

    danke
    lg

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Ruft ein Besucher eine deiner Webseiten auf, startet WordPress eine Datenbankabfrage und wählt dann je nach Art der Daten anschließend das passende Template zur Anzeige aus (Stichwort: Template-Hierarchie). Dein Template scheint aber diese Abfrage gar nicht zu nutzen, sondern startet gleich eine neue WP_Query(). Dadurch hast du mehr Aufwand; die Webseite lädt (wenn auch nur Millisekunden) langsamer. Besser wäre also, WordPress mit dem Filter pre_get_posts im Vorfeld mitzuteilen, wieviel Blogbeiträge pro Seite du abrufen möchtest.

    Damit nicht genug, du fragst die Daten gleich zweimal ab. Hier könnte man statt dessen in die Loop nach der ersten Abfrage einen Zähler einbauen, der ab dem 6. Post eine CSS-Klasse hinzufügt. (Der Button würde dann diese Klasse änden.)

    Abgesehen enthält dein Code in der zweiten Abfrage noch ein kleiner Fehler.
    Richtig müsste es wohl lauten:

    <?php $the_query = new WP_Query( 'posts_per_page=18&offset=6' ); ?>

    Thread-Starter j_spaceman

    (@nothinghalosix)

    Hallo Bego Mario,

    danke für deine Antwort. Habt hetzt mit Hilfe eines Kollegen so gelöst.

    <ul class="beitrag">
    
                            <?php $the_query = new WP_Query( 'posts_per_page=6' ); ?>
    
                            <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
    
    <li><a>"><?php the_post_thumbnail( array() ); ?>
                                        <p class="post-title"><?php the_title(); ?></p>
                                        <p class="date"><?php the_time('d.m.Y'); ?></p>
                                    </a>
                                </li>
                            <?php endwhile; ?>
    
                            <div class="button active hide"><h5>mehr laden</h5></div>
                            <div class="block">
    
                            <!-- weitere Beiträge laden und letzen 6 ausblenden -->
                                <?php $the_query = new WP_Query( array('post_per_page' => -1, 'offset' => 6 )); ?>
    
                                <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
    
    <li><a>"><?php the_post_thumbnail( array() ); ?>
                                            <p class="post-title"><?php the_title(); ?></p>
                                            <p class="date"><?php the_time('d.m.Y'); ?></p>
                                        </a>
                                    </li>
                                <?php endwhile; ?>
    
                            </div>

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Das Thema „Letzte Beiträge verbergen“ ist für neue Antworten geschlossen.