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

  • Доброго времени суток!
    Проблема заключается, что WP не высчитывает количество страниц (переменная $paged, если не ошибаюсь). Стоят два плагина WP-PageNavi (активен), WP-Paginate (отключен).
    В итоге, на странице 419 записей, и все они на первой странице. Внизу отображается, что это первая страница, и всё. Больше страниц нет. В настройках менял количество записей на странице и по 10, и по 20, не помогает.
    Несколько дней бьюсь об заклад, уже не знаю где копать.
    Квалифицированные WordPress’овцы, помогите, пожалуйста.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • каким циклом записи выводятся?

    <?php while ( $query->have_posts() ): $query->the_post(); ?>
    <?php endwhile; ?>

    аргументы $query где?

    еще раз, где аргументы $query, где вызов wp_query?

    post_per_page -1 — это и есть все.

    Я извиняюсь, вообще не спец в WP.
    wp_query не вызывается, тут тема consulting, весь этот код достался по наследству. Вот код перед формированием страницы.

    $atts = vc_map_get_attributes( $this->getShortcode(), $atts );
    
    extract( $atts );
    
    $css_class = apply_filters( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, vc_shortcode_custom_css_class( $css, ' ' ) );
    
    if ( empty( $loop ) ) {
    	return;
    }
    
    $query = false;
    
    list( $loop_args, $query ) = vc_build_loop_query( $loop, get_the_ID() );
    
    if ( ! $query ) {
    	return;
    }
    
    if ( ! $img_size ) {
    	$img_size = 'consulting-image-350x250-croped';
    }
    
    $consulting_config = consulting_config();

    @flector
    я думал, «post_per_page = -1», это использовать значение по умолчанию из админки. Один фиг, если я его изменяю на 20, он всё равно выводит всё на одну.

    где изменяете то?
    я по-прежнему не вижу в коде аргументов цикла.

    Вот весь код страницы…

    <?php
    $atts = vc_map_get_attributes( $this->getShortcode(), $atts );
    
    extract( $atts );
    
    $css_class = apply_filters( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, vc_shortcode_custom_css_class( $css, ' ' ) );
    
    if ( empty( $loop ) ) {
    	return;
    }
    
    $query = false;
    
    $loop .= '|posts_per_page:20';
    
    list( $loop_args, $query ) = vc_build_loop_query( $loop, get_the_ID() );
    
    if ( ! $query ) {
    	return;
    }
    
    if ( ! $img_size ) {
    	$img_size = 'consulting-image-350x250-croped';
    }
    
    $consulting_config = consulting_config();
    ?>
    
    <?php if ( $query->have_posts() ): ?>
    	<div class="stm_news<?php echo esc_attr( $css_class ); ?>">
    		<ul class="news_list posts_per_row_<?php echo esc_attr( $posts_per_row ); ?>">
    			<?php while ( $query->have_posts() ): $query->the_post(); ?>
    				<li>
    					<div class="post_inner">
    						<?php if ( has_post_thumbnail() && ! $disable_preview_image ): ?>
    							<div class="image">
    								<a href="<?php the_permalink(); ?>">
    									<?php the_post_thumbnail( $img_size ); ?>
    								</a>
    							</div>
    						<?php endif; ?>
    						<h5 class="no_stripe"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
    
    						<?php if( $consulting_config['layout'] == 'layout_2' || $consulting_config['layout'] == 'layout_9' ) : ?>
    							<div class="category"><?php echo get_the_category_list(__( ', ', 'consulting' )); ?></div>
    						<?php else : ?>
    							<div class="date"><?php echo get_the_date(); ?></div>
    						<?php endif; ?>
    					</div>
    				</li>
    			<?php endwhile; ?>
    		</ul>
    	</div>
    	<style>.wp-pagenavi{padding:1.875rem 0;}</style>
    <?php endif;
    
    	if (function_exists('wp_pagenavi')) wp_pagenavi();
    
    	wp_reset_postdata();
    ?>

    Обнулил тамошний WP_Query сделал свой:

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    
    $query = new WP_Query([
    	'post_status' => 'publish',
    	'posts_per_page' => 20,
    	'orderby' => 'date',
    	'order' => 'DESC',
    	'post_type' => ['post'],
    	'cat' => 85,
    	'paged' => $paged,
    	'post__not_in' => [2313],
    ]);

    Теперь пагинация как бы есть, она переключается &paged=4 и тд.
    Но сволочь меню пагинации всё равно не работает, показывает только типа одну страницу. Ссылок на другие страницы не отображает.

    судя по коду — где то в настройках самой темы есть указание числа записей на странице.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Сломана пагинация. Не делит на страницы.» закрыта для новых ответов.