Aumentare il numero di articoli nella pagina archivio

22 lug 2014, 15:31:18
Visualizzazioni: 19K
Voti: 13

Attualmente la pagina archivio del mio sito mostra 5 articoli per pagina. Ho bisogno di impostarla a 100 articoli per pagina.

(La mia homepage mostra 5 articoli per pagina e non voglio modificarla)

Ecco il mio 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. Imposta $post così che the_date() funzioni. ?>
      <?php /* Se questo è un archivio per categoria */ if (is_category()) { ?>
        <h2>Archivio per la categoria &#8216;<?php single_cat_title(); ?>&#8217;</h2>
      <?php /* Se questo è un archivio per tag */ } elseif( is_tag() ) { ?>
        <h2>Articoli con tag &#8216;<?php single_tag_title(); ?>&#8217;</h2>
      <?php /* Se questo è un archivio giornaliero */ } elseif (is_day()) { ?>
        <h2>Archivio per <?php the_time('j F Y'); ?></h2>
      <?php /* Se questo è un archivio mensile */ } elseif (is_month()) { ?>
        <h2>Archivio per <?php the_time('F Y'); ?></h2>
      <?php /* Se questo è un archivio annuale */ } elseif (is_year()) { ?>
        <h2>Archivio per <?php the_time('Y'); ?></h2>
      <?php /* Se questo è un archivio per autore */ } elseif (is_author()) { ?>
        <h2>Archivio autore</h2>
      <?php /* Se questa è una pagina archiviata */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
        <h2>Archivio 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; Articoli più vecchi') ?></div>
                <div class="right"><?php previous_posts_link('Articoli più recenti &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="Link permanente a <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <div class="post_date">Pubblicato 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; Articoli più vecchi') ?></div>
                <div class="right"><?php previous_posts_link('Articoli più recenti &raquo;') ?></div>

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

            </div>

        <?php endif;?>

    <?php else : ?>     
        <p>Nessun articolo trovato.</p>

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

        <?php get_template_part( 'loop-nav' ); // Carica il template loop-nav.php. ?>

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

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

<?php get_footer(); // Carica il template footer.php. ?>

Ho creato la pagina archivio utilizzando due temi "Omega" + Quietude

6
Commenti

do_atomic() non è una funzione del core di WP, ma specifica di un tema o plugin. Chiedi nel loro canale di supporto come ottenere quel risultato.

kaiser kaiser
22 lug 2014 15:38:53

@kaiser ..non è un file del tema.. ma l'ho copiato-incollato da un altro sito (il motivo è "voglio mostrare solo il titolo del post, non il post intero nella pagina archivio")..

new dev new dev
22 lug 2014 16:19:39

"copiato/incollato da un altro sito" ... bello. no. Ogni contenuto ha una licenza. Per favore cercala, fai una [modifica] e aggiungi un link alla fonte e menziona la sua licenza. Devi rispettare il lavoro e la proprietà intellettuale degli altri. Ad esempio: ogni codice su questo sito è con licenza CC-BY-SA 3.0 (vedi il footer).

kaiser kaiser
22 lug 2014 16:23:21

sorgente aggiunta....

new dev new dev
22 lug 2014 16:44:05

Per favore non pubblicare ringraziamenti come risposta. Per favore accetta la risposta di Brad cliccando sul segno di spunta accanto alla sua risposta.

Pieter Goosen Pieter Goosen
23 lug 2014 12:52:35

Per favore sii cortese e aiuta a mantenere costruttivo questo sito. La risposta di @BradDalton ha risolto il tuo problema. Dovresti davvero considerare di accettare la sua risposta cliccando sul segno di spunta accanto alla sua risposta. Questo non solo aiuterà te, ma tutti coloro che troveranno la risposta di Brad. Grazie per la comprensione :-)

Pieter Goosen Pieter Goosen
24 lug 2014 10:37:58
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 2
3
35

Puoi utilizzare pre_get_posts nel tuo file functions per modificare la query

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 lug 2014 17:04:44
Commenti

Lol, piacere, ti ho votato. Rimane la soluzione migliore

Pieter Goosen Pieter Goosen
22 lug 2014 17:50:08

Questa è la soluzione migliore.

Amir5000 Amir5000
5 apr 2018 02:21:10

Funziona perfettamente! Grazie Brad.

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

La cosa più semplice da fare, invece di modificare i file del tema (e se sei nuovo a WordPress), è utilizzare un plugin come Custom Post Limits « Plugin per WordPress.

Puoi modificare i limiti dei post per qualsiasi parametro: post della home page, risultati di ricerca, risultati di archivio, categorie, autori, ecc. È un plugin leggero e molto versatile.

(E crea un child theme se stai modificando i file del tema: Child Themes « WordPress Codex)

22 lug 2014 17:35:07