Поддержка Проблемы и решения Не работает пагинация

  • Добрый день, не работает пагинация на странице с постами, пробовал разные решения, но ничего не помогло, сайт на своей теме, дорабатывал с программистом, но он в отключке,
    менять ‘posts_per_page’=>-1 на другое значение пробовал, код на сегодняшний день:

    <?php
    /**
     * Template Name: Blog
     */
    ?>
    <?php get_header(); ?>
    
    <!-- START MAIN -->
    <div class="layout-container main-container with-left-sidebar">
    	<main>
    	
    		<p>
    			<h1><?php wp_title("", true); ?></h1>
    		</p>
    		<?php	$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1)); ?>
    		
    
    		
    					<?php if ( $wpb_all_query->have_posts() ) : ?>
    					<div class="blog-list">
    				    <!-- the loop -->
    				    <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
    					
    				    	
    				        <div class="blog-list__item">
    				        	<div class="blog-list__image"> 
    				        		<a href="<?php the_permalink(); ?>"><?php echo get_the_post_thumbnail() ?></a>
    				        	</div>
    							<p class="blog-heading" ><span  style="color: #EF7F1A; font-size: 1.3em;  line-height: 1.2em!important;  margin-top: 20px; margin-bottom: 10px!important; word-break: break-all; font-weight:600;"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </span> <span class="blog-date"><?php the_date(); ?></span></p>
    							<?php the_excerpt(); ?>
    							
    						 
    				
    				        </div>
    						
    
    						<?php if( function_exists('wp_pagenavi') ) wp_pagenavi(); ?>
    					    <?php endwhile; ?>
    					    <!-- end of the loop -->
    							
    						
    		<?php pagination(); ?>
    						
    					</div>
    				    <?php wp_reset_postdata(); ?>
    					<?php else : ?>
    					    <p><?php _e( 'Извините, нет записей, соответствуюших Вашему запросу.' ); ?></p>
    					<?php endif; ?>
    		
    		
    		
    								
    					
    <!-- content end -->
    	</main>	
    	<?php if (!is_page(909) && get_post_type() != 'wpsc-product')  { 
    		get_sidebars(); 
    	} else {
    	    include(TEMPLATEPATH."/sidebar2.php");
    	}?>
    </div>
    <!-- END MAIN -->
    <?php get_footer(); ?>

    Буду благодарен за помощь!

    • Тема изменена 3 года, 2 месяца назад пользователем conver100.
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yuri

    (@yube)

    Какая может быть пагинация, если 'posts_per_page'=>-1?

    Я вообще не понимаю, зачем что-то изобретать, когда для вывода архива записей (всех постов) при статической главной движок делает сам, достаточно указать страницу в настройках чтения.

    Пробовал ставить значение ‘posts_per_page’=>10 — не помогло, выводит 10 постов, но не выводит кнопки пагинации, при этом на странице результата поиска, всё работает.

    При указании страницы блога в настройках wordpress, слетает вообще вся вёрстка — она, повторюсь самописная.

    • Ответ изменён 3 года, 2 месяца назад пользователем conver100.
    Модератор Yuri

    (@yube)

    не выводит кнопки пагинации

    Не работает и не выводится — две большие разницы.

    при этом на странице результата поиска, всё работает.

    Потому что результат поиска — список записей. А то, что Вы мучаете, судя по Template Name: Blog — одинокая статическая страница. Движок ничего не знает о том, что внутри шаблона формируется альтернативная выборка записей. Для него это одна запись типа page.

    Мой совет: используйте возможности движка. Еще раз: если главной назначена статическая страница, то другую статическую страницу можно назначить страницей записей. Всё остальное сделает wordpress.

    Мой совет: используйте возможности движка. Еще раз: если главной назначена статическая страница, то другую статическую страницу можно назначить страницей записей. Всё остальное сделает wordpress.

    Конечно это пробовал, вёрстка слетает и не устраивает вывод движком, у нас сделана нормальная вёрстка под сайт без лишней информации, т.к. это не блог, а статьи.

    Модератор Yuri

    (@yube)

    Решается шаблоном, причем без лишней выборки. Ну да ладно, вам виднее на что время убивать. Удачи.

    Решается шаблоном, причем без лишней выборки. Ну да ладно, вам виднее на что время убивать. Удачи.

    Благодарю

    Если кто-то может помочь конкретным советом, буду благодарен.

    • Ответ изменён 3 года, 2 месяца назад пользователем conver100.

    Получилось решить проблему переносом кода из шаблона страницы Blog-template в index.php, назначением в настройках чтения страницы записей и добавлением в код wp_query get_query_var(‘paged’) для определения текущей страницы, т.к. без этого переключение по страницам не меняло список постов.

    Итоговый код выглядит так:

    <?php get_header(); ?>
    
    <!-- START MAIN -->
    <div class="layout-container main-container with-left-sidebar">
    	<main>
    	
    		<p>
    			<h1><?php wp_title("", true); ?></h1>
    		</p>
    		<?php pagination(); ?>
    		<?php	$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>15, 'paged' => get_query_var('paged'))); ?>
    		
    
    		
    					<?php if ( $wpb_all_query->have_posts() ) : ?>
    					<div class="blog-list">
    				    <!-- the loop -->
    				    <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
    					
    				    	
    				        <div class="blog-list__item">
    				        	<div class="blog-list__image"> 
    				        		<a href="<?php the_permalink(); ?>"><?php echo get_the_post_thumbnail() ?></a>
    				        	</div>
    							<p class="blog-heading" ><span  style="color: #EF7F1A; font-size: 1.3em;  line-height: 1.2em!important;  margin-top: 20px; margin-bottom: 10px!important; word-break: break-all; font-weight:600;"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </span> <span class="blog-date"><?php the_date(); ?></span></p>
    							<?php the_excerpt(); ?>
    							
    						 <p><hr id="a"></p>
    				
    				        </div>
    						
    
    						<?php if( function_exists('wp_pagenavi') ) wp_pagenavi(); ?>
    					    <?php endwhile; ?>
    					    <!-- end of the loop -->
    							
    						
    		<?php pagination(); ?>
    						
    					</div>
    				    <?php wp_reset_postdata(); ?>
    					<?php else : ?>
    					    <p><?php _e( 'Извините, нет записей, соответствуюших Вашему запросу.' ); ?></p>
    					<?php endif; ?>
    		
    		
    		
    								
    					
    <!-- content end -->
    	</main>	
    	<?php if (!is_page(909) && get_post_type() != 'wpsc-product')  { 
    		get_sidebars(); 
    	} else {
    	    include(TEMPLATEPATH."/sidebar2.php");
    	}?>
    </div>
    <!-- END MAIN -->
    <?php get_footer(); ?>
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Не работает пагинация» закрыта для новых ответов.