Erhöhen Sie die Anzahl der Beiträge auf der Archivseite

8

Derzeit werden auf meiner Website-Archivseite 5 Beiträge pro Seite angezeigt. Ich muss es auf 100 Beiträge pro Seite einstellen.

(Meine Homepage zeigt 5 Beiträge pro Seite und ich möchte sie nicht ändern.)

Hier ist meine archive.php

    <?php get_header(); ?>
    <?php do_atomic( 'before_content' ); // my-life_before_content ?>

    <div id="content">
    <?php if (have_posts()) : ?>

      <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
      <?php /* If this is a category archive */ if (is_category()) { ?>
        <h2>Archive for the &#8216;<?php single_cat_title(); ?>&#8217; Category</h2>
      <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
        <h2>Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h2>
      <?php /* If this is a daily archive */ } elseif (is_day()) { ?>
        <h2>Archive for <?php the_time('F jS, Y'); ?></h2>
      <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
        <h2>Archive for <?php the_time('F, Y'); ?></h2>
      <?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
        <h2>Archive for <?php the_time('Y'); ?></h2>
      <?php /* If this is an author archive */ } elseif (is_author()) { ?>
        <h2>Author Archive</h2>
      <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
        <h2>Blog Archives</h2>
      <?php } ?>

        <?php if ( is_paged() || count($posts) >= get_option('posts_per_page') ) : ?>
            <div class="post_meta archive_pagination">

                <div class="left"><?php next_posts_link('&laquo; Older Entries') ?></div>
                <div class="right"><?php previous_posts_link('Newer Entries &raquo;') ?></div>

                <div class="clearer">&nbsp;</div>

            </div>

        <?php else : ?>
        <div class="content_separator"></div>

        <?php endif;?>      

        <?php while (have_posts()) : the_post(); ?>

        <div class="archive_post">

            <div class="archive_post_date">
                <div class="archive_post_day"><?php the_time('j') ?></div>
                <div class="archive_post_month"><?php echo strtoupper(get_the_time('M')); ?></div>
            </div>

            <div class="archive_post_title">
                <h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <div class="post_date">Posted in: <div class="freetory"><?php the_category(', ') ?></div> |<div class="freetory"><?php the_tags(' '); ?></div></div>
            </div>

            <div class="clearer">&nbsp;</div>

        </div>

        <?php endwhile; ?>

        <?php if ( is_paged() || count($posts) >= get_option('posts_per_page') ) : ?>

            <div class="post_meta archive_pagination">

                <div class="left"><?php next_posts_link('&laquo; Older Entries') ?></div>
                <div class="right"><?php previous_posts_link('Newer Entries &raquo;') ?></div>

                <div class="clearer">&nbsp;</div>

            </div>

        <?php endif;?>

    <?php else : ?>     
        <p>No posts found.</p>

    <?php endif; ?>
    <?php do_atomic( 'close_content' ); // my-life_close_content ?>

        <?php get_template_part( 'loop-nav' ); // Loads the loop-nav.php template. ?>

    </div><!-- #content -->

    <?php do_atomic( 'after_content' ); // my-life_after_content ?>

<?php get_footer(); // Loads the footer.php template. ?>

Ich habe die Archivseite über zwei Themen "Omega" + Ruhe erstellt

neuer Entwickler
quelle
do_atomic()ist keine WP-Kernfunktion, sondern themen- oder pluginspezifisch. Bitte fragen Sie auf der Support-Route, wie dies erreicht werden kann.
Kaiser
@kaiser ..ist keine Themendatei .. aber ich habe es von einer anderen Seite kopiert (Grund ist "Ich möchte nur den Titel des Beitrags anzeigen, nicht den vollständigen Beitrag auf der Archivseite") ..
neuer Entwickler
"Kopieren / Einfügen von einer anderen Seite" ... schön. nicht. Jeder Inhalt hat eine Lizenz. Bitte suchen Sie es, reichen Sie eine Bearbeitung ein , fügen Sie einen Link zur Quelle hinzu und informieren Sie sich über die Lizenz. Sie müssen die Arbeit und das geistige Eigentum anderer Menschen respektieren. Beispiel: Jeder Code auf dieser Site ist CC-BY-SA 3.0-lizenziert (siehe Fußzeile).
Kaiser
Quelle hinzugefügt ....
neuer Entwickler
Bitte poste keinen Dank als Antwort. Bitte akzeptieren Sie Brads Antwort, indem Sie auf das Häkchen neben seiner Antwort klicken.
Pieter Goosen

Antworten:

28

Sie können pre_get_postsin Ihrer Funktionsdatei die Abfrage ändern

function wpsites_query( $query ) {
if ( $query->is_archive() && $query->is_main_query() && !is_admin() ) {
        $query->set( 'posts_per_page', 100 );
    }
}
add_action( 'pre_get_posts', 'wpsites_query' );
Brad Dalton
quelle
Lol, Vergnügen, hat dich gestimmt. Immer noch ist die beste Lösung
Pieter Goosen
Dies ist die beste Lösung.
Amir5000
0

Das Einfachste, anstatt Themendateien zu bearbeiten (und wenn Sie WordPress noch nicht kennen), ist die Verwendung eines Plugins wie Custom Post Limits «WordPress Plugins.

Sie können die Beitragsbeschränkungen für jeden Parameter ändern: Beiträge auf der Startseite, Suchergebnisse, Archivergebnisse, Kategorien, Autoren usw. Es ist ein leichtes Plugin, das sehr vielseitig ist.

(Und erstellen Sie ein untergeordnetes Thema, wenn Sie Themendateien bearbeiten: Untergeordnete Themen «WordPress Codex )

markratledge
quelle