@vanyproduction

Wordpress php код — Как исправить?

Здравствуйте. Есть код.
Без первой строчки - код работает правильно, но - выдает 10 постов на страницу, мне необходимо - 12. Если вставить код - на каждой странице архива будут одинаковые посты. Т.е. пагинация не работает.
Понимаю, что тут может крыться вполне детская ошибка, но я в php не разбираюсь совершенно, поэтому был бы рад любой помощи.

<?php query_posts( 'cat=3&showposts=12' ); ?>
			<?php while ( have_posts() ) : the_post(); ?>
			<article id="post-<?php the_ID(); ?>" <?php post_class(); ?> >
				<header class="car-arch-header">
					<h1 class="car-arch-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
				</header><!-- .entry-header -->
				<div class="car-arch-thumbnail">
					<a href="<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' );echo $large_image_url[0];?>"><?php the_post_thumbnail( 'medium' );  ?></a>
				</div>
				<div class="car-arch-price"><?php echo get_post_meta($post->ID, 'eg-pricehour', true) ?> $</div>
			</article><!-- #post-## -->
			<?php endwhile; // end of the loop. ?>
			</div>
			<div class="pagination-my">
			<?php
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
	'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
	'format' => '?paged=%#%',
	'current' => max( 1, get_query_var('paged') ),
	'prev_next'    => False,
	'total' => $wp_query->max_num_pages
) );
?>

Не работает пагинация, даже если просто добавить вот такие ссылки вместо страниц.
<?php next_posts_link('« Older Entries') ?>
<?php previous_posts_link('Newer Entries »') ?>


*Всем спасибо, по ошибке не сюда а в комментарий написал решение.
  • Вопрос задан
  • 2581 просмотр
Пригласить эксперта
Ответы на вопрос 3
query_posts плохое решение.
используйте Wp_Query в данном случае.
Ответ написан
Комментировать
@mr_ko
Javascript, Node.js. React.js, Vue.js, Wordpress
Если вставить код - на каждой странице архива будут одинаковые посты.
а как может быть по другому если в строчке
<?php query_posts( 'cat=3&showposts=12' ); ?>
указано брать посты из категории с ID=3.
Если вам нужно просто изменить количество постов на странице, то это можно сделать на странице настроек в админке wp-admin/options-reading.php
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Александр Зеленин дело говорит. query_posts - это утилитная функция, ее в этом случае юзать не стоит. Оптимально - хук в pre_get_posts, установить нужные параметры (категория, количество постов на страницу), тогда стандартный луп (WP_Query) сам по себе выдаст нужный результат, и больше ничего править не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы