Cum să crești numărul de articole afișate pe pagina de arhivă în WordPress

22 iul. 2014, 15:31:18
Vizualizări: 19K
Voturi: 13

În prezent, pagina de arhivă a site-ului meu afișează 5 articole pe pagină. Am nevoie să setez acest număr la 100 de articole pe pagină.

(Pagina principală afișează 5 articole pe pagină și nu doresc să o modific)

Iată codul meu din 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. Setează $post pentru a funcționa the_date(). ?>
      <?php /* Dacă este o arhivă de categorie */ if (is_category()) { ?>
        <h2>Arhivă pentru categoria &#8216;<?php single_cat_title(); ?>&#8217;</h2>
      <?php /* Dacă este o arhivă de etichete */ } elseif( is_tag() ) { ?>
        <h2>Articole etichetate &#8216;<?php single_tag_title(); ?>&#8217;</h2>
      <?php /* Dacă este o arhivă zilnică */ } elseif (is_day()) { ?>
        <h2>Arhivă pentru <?php the_time('F jS, Y'); ?></h2>
      <?php /* Dacă este o arhivă lunară */ } elseif (is_month()) { ?>
        <h2>Arhivă pentru <?php the_time('F, Y'); ?></h2>
      <?php /* Dacă este o arhivă anuală */ } elseif (is_year()) { ?>
        <h2>Arhivă pentru <?php the_time('Y'); ?></h2>
      <?php /* Dacă este o arhivă de autor */ } elseif (is_author()) { ?>
        <h2>Arhivă autor</h2>
      <?php /* Dacă este o arhivă paginată */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
        <h2>Arhivă blog</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; Articole mai vechi') ?></div>
                <div class="right"><?php previous_posts_link('Articole mai noi &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="Legătură permanentă către <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <div class="post_date">Publicat în: <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; Articole mai vechi') ?></div>
                <div class="right"><?php previous_posts_link('Articole mai noi &raquo;') ?></div>

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

            </div>

        <?php endif;?>

    <?php else : ?>     
        <p>Nu s-au găsit articole.</p>

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

        <?php get_template_part( 'loop-nav' ); // Încarcă template-ul loop-nav.php. ?>

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

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

<?php get_footer(); // Încarcă template-ul footer.php. ?>

Am creat pagina de arhivă folosind două teme: "Omega" + Quietude

6
Comentarii

do_atomic() nu este o funcție din nucleul WordPress, ci este specifică temei sau unui plugin. Te rog să întrebi pe canalul lor de suport cum poți realiza acest lucru.

kaiser kaiser
22 iul. 2014 15:38:53

@kaiser ..nu este un fișier de temă.. dar l-am copiat și lipit de pe alt site (motivul este "vreau să afișez doar titlul articolului, nu întregul articol în pagina de arhivă")..

new dev new dev
22 iul. 2014 16:19:39

"copiat/lipit de pe alt site" ... grozav. nu. Orice conținut are o licență. Te rog caută informații, adaugă o [editare] și include un link către sursă, precum și menționează licența acesteia. Trebuie să respecți munca și proprietatea intelectuală a altor persoane. De exemplu: Orice cod de pe acest site este licențiat sub CC-BY-SA 3.0 (vezi subsolul paginii).

kaiser kaiser
22 iul. 2014 16:23:21

sursă adăugată....

new dev new dev
22 iul. 2014 16:44:05

Te rog să nu postezi mesaje de mulțumire ca răspuns. Te rugăm să accepți răspunsul lui Brad făcând clic pe bifa de lângă răspunsul său.

Pieter Goosen Pieter Goosen
23 iul. 2014 12:52:35

Te rugăm să fii politicos și să ajuți să păstrezi acest site constructiv. Răspunsul lui @BradDalton a rezolvat problema ta. Ar trebui să iei în serios acceptarea răspunsului său făcând clic pe bifa de lângă răspunsul său. Acest lucru nu numai că te va ajuta pe tine, ci și pe toți cei care vor găsi răspunsul lui Brad. Mulțumim pentru înțelegere :-)

Pieter Goosen Pieter Goosen
24 iul. 2014 10:37:58
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 2
3
35

Puteți folosi pre_get_posts în fișierul functions pentru a modifica interogarea

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' );
22 iul. 2014 17:04:44
Comentarii

Lol, cu plăcere, ți-am dat upvote. Încă este cea mai bună soluție

Pieter Goosen Pieter Goosen
22 iul. 2014 17:50:08

Aceasta este cea mai bună soluție.

Amir5000 Amir5000
5 apr. 2018 02:21:10

Funcționează perfect! Mulțumesc Brad.

Suraj Lulla Suraj Lulla
26 apr. 2022 10:16:09
0

Cel mai simplu lucru de făcut în loc să editezi fișierele temei (și dacă ești nou în WordPress) este să folosești un plugin precum Custom Post Limits « WordPress Plugins.

Poți schimba limitele postărilor pentru orice parametru: postări pe pagina principală, rezultatele căutării, rezultatele arhivelor, categorii, autori, etc. Este un plugin ușor care este foarte versatil.

(Și creează o temă copil dacă editezi fișierele temei: Child Themes « WordPress Codex)

22 iul. 2014 17:35:07