Как подключить кастомную пагинацию на вордпресс сайт и ограничить количество постов на странице, потому-что через чтение не работает??

Ссылка скопирована
1 ответ

Суть в том что у меня сверстана пагинация html + css, её нужно подключить без плагинов желательно, и как ограничить количество записей на главной странице, есть не работает через админ панель настройки->чтение.

Как подключить кастомную пагинацию на вордпресс сайт и ограничить количество постов на странице, потому-что через чтение не работает??

Как подключить кастомную пагинацию на вордпресс сайт и ограничить количество постов на странице, потому-что через чтение не работает??

Дополнительно:

Скорее всего дефолтная пагинация на wordpress есть, стоило ее перестилить чем новое городить.

  • drtvader, у меня тема кастом с нуля написана, скорее всего надо самому её добавлять, только вот как грамотно сделать.
  • Compmaster_byte, думаю можно взять из дефолтной темы всё, ну или почти всё.
  • Ответы:

    Попробуйте через функцию pre_get_posts сделать.

    • как я понял эта функция для ограничения постов на странице(или нет)? а как подключить грамотно пагинацию?
    • Compmaster_byte, да, ограничение постов на странице. Если вы не знаете как сделать, то лучше обратиться к специалисту, который напишет код функции и пагинацию тоже.

    Попробуйте это.

    <?php $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $query = new WP_Query( [ 	'post_type'      => 'news', // ваш тип записи. 	'posts_per_page' => 12, // нужное количество записей на одной стр. 	'paged'          => $paged, 	'no_found_rows' => false  ] ); ?>  <!-- Вывод записей --> <div class="container"> 	<div class="wrapper"> 		<?php 		if ( $query->have_posts() ) : 			while ( $query->have_posts() ) { $query->the_post(); 				// Здесь вывод записей 			} 		?> 	</div> </div>  <!-- Вывод пагинации --> <div class="container"> 	<div class="paginatioin-box"> 		<?php 		$big = 999999999; 		echo paginate_links( [ 			'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 			'current' => max( 1, get_query_var('paged') ), 			'total'   => $query->max_num_pages, 		] ); 		?> 	</div> </div>  <?php wp_reset_postdata();  else : ?> 	<div> 		<p>К сожалению новостей нет.</p> 	</div> <?php endif; ?>

    <?php $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $query = new WP_Query( [ 'post_type' => 'news', // ваш тип записи. 'posts_per_page' => 12, // нужное количество записей на одной стр. 'paged' => $paged, 'no_found_rows' => false ] ); ?> <!-- Вывод записей --> <div class="container"> <div class="wrapper"> <?php if ( $query->have_posts() ) : while ( $query->have_posts() ) { $query->the_post(); // Здесь вывод записей } ?> </div> </div> <!-- Вывод пагинации --> <div class="container"> <div class="paginatioin-box"> <?php $big = 999999999; echo paginate_links( [ 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'current' => max( 1, get_query_var('paged') ), 'total' => $query->max_num_pages, ] ); ?> </div> </div> <?php wp_reset_postdata(); else : ?> <div> <p>К сожалению новостей нет.</p> </div> <?php endif; ?>

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для подключения кастомной пагинации на WordPress сайт и ограничения количества постов на странице, вам нужно выполнить следующие шаги:

    1. Создайте файл functions.php в вашей теме или плагине и добавьте следующий код:

    function custom_pagination() {
        global $wp_query;
     
        $big = 999999999; // уникальное число для замены
     
        echo paginate_links(array(
            'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
            'format' => '?paged=%#%',
            'current' => max(1, get_query_var('paged')),
            'total' => $wp_query->max_num_pages
        ));
    }

    function custom_pagination() { global $wp_query; $big = 999999999; // уникальное число для замены echo paginate_links(array( 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => '?paged=%#%', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages )); }

    2. Добавьте следующий код в ваш шаблон страницы, где вы хотите отображать пагинацию:

    custom_pagination();

    custom_pagination();

    3. Для ограничения количества постов на странице, вы можете использовать параметр 'posts_per_page' в вашем запросе WP_Query. Например:

    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 5, // ограничение до 5 постов на странице
        'paged' => get_query_var('paged') ? get_query_var('paged') : 1
    );
     
    $query = new WP_Query($args);

    $args = array( 'post_type' => 'post', 'posts_per_page' => 5, // ограничение до 5 постов на странице 'paged' => get_query_var('paged') ? get_query_var('paged') : 1 ); $query = new WP_Query($args);

    Теперь у вас должна работать кастомная пагинация и ограничение количества постов на странице на вашем WordPress сайте. Не забудьте проверить правильность написания кода и наличие всех необходимых файлов и функций. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их здесь.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно