WordPress как на ладони

Пагинация всё также не работает! Помогите кто-нибудь пожалуйста!

К сожалению следующие посты при переходе не загружаются, чем бы я не пользовался( плагинами или обычным выводов) помоги пожалуйста в чём причина?

if (count(get_categories('child_of='.$cat))) 
if (is_category()) {
$current_cat=get_query_var('cat');

$args = array(
	'type'   => 'post',
	'show_option_all'    => '',
	'show_option_none'   => __('No categories'),
	'orderby'            => 'post_date',
	'order'              => 'DESC',
	'show_last_update'   => 0,
	'style'              => 'list',
	'show_count'         => 0,
	'hide_empty'         => 0,
	'use_desc_for_title' => 1,
	'child_of'           => $current_cat,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => true,
	'title_li'           => '',
	'number'             => NULL,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => 'Walker_Category',
	'hide_title_if_empty' => false,
	'separator'          => '<br />',
);

?>
<?php

foreach (get_categories($args) as $category) {
	$category_link = get_category_link( $category );
		  ?>
			<div class="col-md-6">
				<div class="catalog-block">
					<a href="<?php echo $category_link; ?>" class="catalog-title"><h3><?php echo $category->name; ?></h3></a>
					<a href="<?php echo $category_link; ?>" class="catalog-title"><?php if($imgcat1=get_field("imgcat1",get_category($category))){?>
						<img src="<?php echo $imgcat1;?>" style="max-height: 320px" />
						<?php }?>
					</a>
					<a href="<?php echo $category_link; ?>" class="btn btn-tovar">Узнать подробнее о товаре</a>
				</div>    
			</div>                                    
	<?php
}                       

//echo '<ul class="forchild">';
	//wp_list_categories( $args );
//echo '</ul>';           
}
wp_reset_postdata(); // сброс

?>

	<!-- Код для вывода постов в категории -->
<?php
	// параметры по умолчанию
	$args = array(
		'numberposts' => 0,
		'category_name'    => $cat_slug,
		'orderby'     => 'parent',
		'order'       => 'DESC',
		'include'     => array(),
		'exclude'     => array(),
		'meta_key'    => '',
		'meta_value'  =>'',
		'post_type'   => 'post',
		'child_of='   =>'',
		'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
	);

	$posts = get_posts( $args );
	if ($categories == $current_cat) { //если рубрики равняются текущей рубрике
	foreach($posts as $post){ setup_postdata($post);
		?>
			<div class="col-md-6">
				<div class="catalog-block">
					<a href="<?php the_permalink(); ?>" class="catalog-title"><h3><?php the_title(); ?></h3></a>
					<a href="<?php the_permalink(); ?>" class="catalog-title"><?php the_post_thumbnail('object-preview'); ?>
					</a>
					<a href="<?php the_permalink(); ?>" class="btn btn-tovar">Узнать подробнее о товаре</a>
				</div>    
			</div>
		<?php
		}                                       
	}

	wp_reset_postdata(); // сброс
?>
<?php wp_pagenavi() ?>

Также пробовал выводить данные списки через wp_query ... аналогично. При переходе на следующую страницу посты остаются прежними. меняется только url ...

0
firewaters
5.9 лет назад 1
  • 0

    Это потому, что ты в запрос записей не отправляешь страницу:

        $args = [
    		'numberposts'      => 0,
    		'category_name'    => $cat_slug,
    		'orderby'          => 'parent',
    		'order'            => 'DESC',
    		'include'          => [],
    		'exclude'          => [],
    		'meta_key'         => '',
    		'meta_value'       => '',
    		'post_type'        => 'post',
    		'child_of='        => '',
    		'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
    		'paged'            => get_query_var( 'paged' ) ?: 1,
    	];
    firewaters 5.9 лет назад

    Спасибо Вам огромное! Я столько мучался и искал решение данной проблемы, думал у меня тема моя нерабочая... Успехов Вам в Вашей работе и прочих начинаниях! Очень помогли, почему нигде не находил данного решения, это оооочень полезно!

    Kama 5.8 лет назад

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

    Sasha Lifestar 5.8 лет назад

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

    firewaters 5.8 лет назад

    to "lifestar" - у меня и через обычную функцию - the_posts_pagination не выводило посты... этот плагин я уже в отчаянии поставил.

    Комментировать
  • 0

    Попробуйте reset делать после пагинации или wp_pagenavi( array( 'query' => $posts ));

    firewaters 5.9 лет назад

    К сожалению вот такая ошибка...

    Fatal error
    : Call to a member function get() on a non-object in
    C:\OSPanel\domains\detwordpress\wp-content\plugins\wp-pagenavi\core.php
    on line
    257
    
    firewaters 5.9 лет назад

    И пробовал по разному и сверху и снизу... может нужно что-то в functions.php дописать? у меня просто моя тема

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