Увеличение количества записей на странице архива

22 июл. 2014 г., 15:31:18
Просмотры: 19K
Голосов: 13

В настоящее время на странице архива моего сайта отображается 5 записей на странице. Мне нужно установить значение 100 записей на страницу.

(На главной странице отображается 5 записей, и я не хочу это менять)

Вот мой файл 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]; // Хак. Устанавливаем $post для работы the_date(). ?>
      <?php /* Если это архив категории */ if (is_category()) { ?>
        <h2>Архив категории &#8216;<?php single_cat_title(); ?>&#8217;</h2>
      <?php /* Если это архив метки */ } elseif( is_tag() ) { ?>
        <h2>Записи с меткой &#8216;<?php single_tag_title(); ?>&#8217;</h2>
      <?php /* Если это ежедневный архив */ } elseif (is_day()) { ?>
        <h2>Архив за <?php the_time('j F Y'); ?></h2>
      <?php /* Если это месячный архив */ } elseif (is_month()) { ?>
        <h2>Архив за <?php the_time('F Y'); ?></h2>
      <?php /* Если это годовой архив */ } elseif (is_year()) { ?>
        <h2>Архив за <?php the_time('Y'); ?></h2>
      <?php /* Если это архив автора */ } elseif (is_author()) { ?>
        <h2>Архив автора</h2>
      <?php /* Если это разбитый на страницы архив */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
        <h2>Архив блога</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; Старые записи') ?></div>
                <div class="right"><?php previous_posts_link('Новые записи &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="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <div class="post_date">Опубликовано в: <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; Старые записи') ?></div>
                <div class="right"><?php previous_posts_link('Новые записи &raquo;') ?></div>

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

            </div>

        <?php endif;?>

    <?php else : ?>     
        <p>Записи не найдены.</p>

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

        <?php get_template_part( 'loop-nav' ); // Загружает шаблон loop-nav.php. ?>

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

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

<?php get_footer(); // Загружает шаблон footer.php. ?>

Я создал страницу архива с помощью двух тем "Omega" + Quietude

6
Комментарии

do_atomic() — это не функция ядра WP, а специфичная для темы или плагина. Пожалуйста, обратитесь в их службу поддержки, чтобы узнать, как этого добиться.

kaiser kaiser
22 июл. 2014 г. 15:38:53

@kaiser ..это не файл темы.. но я скопировал-вставил его с другого сайта (причина — "просто хочу показывать заголовок записи, а не полный текст на странице архива")..

new dev new dev
22 июл. 2014 г. 16:19:39

"скопировал/вставил с другого сайта" ... нехорошо. У каждого контента есть лицензия. Пожалуйста, найдите её, внесите [правку], добавьте ссылку на источник и укажите его лицензию. Вы должны уважать чужую работу и интеллектуальную собственность. Например: весь код на этом сайте лицензирован под CC-BY-SA 3.0 (см. подвал страницы).

kaiser kaiser
22 июл. 2014 г. 16:23:21

источник добавлен...

new dev new dev
22 июл. 2014 г. 16:44:05

Пожалуйста, не публикуйте благодарности в качестве ответа. Пожалуйста, примите ответ Брэда, нажав на галочку рядом с его ответом.

Pieter Goosen Pieter Goosen
23 июл. 2014 г. 12:52:35

Пожалуйста, будьте внимательны и помогите поддерживать этот сайт конструктивным. Ответ @BradDalton решил вашу проблему. Вам действительно стоит принять его ответ, нажав на галочку рядом с его ответом. Это поможет не только вам, но и всем, кто найдет ответ Брэда. Спасибо за понимание :-)

Pieter Goosen Pieter Goosen
24 июл. 2014 г. 10:37:58
Показать остальные 1 комментариев
Все ответы на вопрос 2
3
35

Вы можете использовать pre_get_posts в файле functions.php для изменения запроса

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 июл. 2014 г. 17:04:44
Комментарии

Лол, спасибо, плюсанул тебя. Все еще лучшее решение

Pieter Goosen Pieter Goosen
22 июл. 2014 г. 17:50:08

Это лучшее решение.

Amir5000 Amir5000
5 апр. 2018 г. 02:21:10

Работает как чары! Спасибо, Брэд.

Suraj Lulla Suraj Lulla
26 апр. 2022 г. 10:16:09
0

Самый простой способ (особенно для новичков в WordPress) - вместо редактирования файлов темы использовать плагин, например Custom Post Limits « Плагины WordPress.

Вы можете изменять количество постов для любых параметров: записи на главной странице, результаты поиска, архивы, категории, авторы и т.д. Это легковесный и универсальный плагин.

(И если вы редактируете файлы темы, создайте дочернюю тему: Дочерние темы « WordPress Codex)

22 июл. 2014 г. 17:35:07