Совет от гуру

Сломал уже всю голову.
Подскажите,пожалуйста,каким способом лучше реализовать такое:
Вывод новых постов:
Один пост отдельно (с большой картинкой) и рядом пять постов

Далее идут Самые просматриваемые:
Две колонки,в каждой также пост отдельно (с большой картинкой) и под ним пять постов

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

Попытался с помощью сортировки,но получается какая-то...т.е не устраивает что-то...

Признаюсь,что такое сделал на CMS DLE(там все проще намного),но хочу все-таки для сайта воспользоваться WP.

Заметки к вопросу:
Kama 3 года назад

А в чем проблема конкретно, что именно не получается?

AHristich 3 года назад

Решил сделать без плагинов,штатными средствами,с помощью сайдбаров.

С сортировкой вроде бы разобрался,но остаются вопросы: при post-page-pre при значении 1 отображается 2 поста; насколько столько сайдбаров будет влять на скорость и загрузку сайта в целом.

Kama 3 года назад

Что, в чем конкретно проблема?

AHristich 3 года назад

Сделал так (front-page.php):


Сортировка постов:
SB-1 (выводится почему-то 2:

$args = array(
	'posts_per_page' => 1,
);

SB-2 (выводится почему-то 10):

$args = array(
	'posts_per_page=5&offset=1'
);

SB-3 (выводится почему-то 3:

$args = array(
	'posts_per_page' => 2,
);

SB-4 (выводится почему-то 10):

$args = array(
	'posts_per_page=5&offset=2'
);

И как все это победить,хз.

Kama 3 года назад

1) Какой функцией делаешь запрос?
2) Поищи фильтры pre_get_posts возможно где-то через этот хук меняются параметры запроса. Или это может быть плагин, или код левый какой-то.

AHristich 3 года назад
<?php
$args = array(
	'posts_per_page' => ЗНАЧЕНИЕ, 
);
$query = new WP_Query( $args ); ?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
Kama 3 года назад

При 'posts_per_page' => 1 должна выводится одна запись! Раз этого не происходит, значит где-то запрос меняется уже внутри WP_Query. Тебе нужно найти какой код меняет запрос. См. WP_Query::get_posts().

AHristich 3 года назад

Стесняюсь спросить даже.Куда вставлять этот код?

AHristich 3 года назад

Полный код сайдбара который выводит 2 поста вместо 1:

<?php
$args = array(
	'posts_per_page' => 1,
);
$query = new WP_Query( $args ); ?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<article itemscope itemtype="http://schema.org/Article">
<div class="post">
	 <a class="full-post" href="<?php the_permalink();?>">
<?php
$args = array(
	'post_type'   => 'attachment',
	'numberposts' => 1,
	'post_status' => null,
	'post_parent' => $post->ID,
	'exclude'     => get_post_thumbnail_id()
	);
$attachments = get_posts( $args );
if ( $attachments ) :
	foreach ( $attachments as $attachment ) {
		echo wp_get_attachment_image( $attachment->ID, 'full', false, array ("class" => "img-fluid img-thumbnail"));
	};
else:
   print '<img class="img-fluid img-thumbnail" src="'. get_bloginfo('template_directory'). '/images/no_image.jpg' . '" alt="no image" />';
endif;
?></a> 
	<div class="post-block">
		<span class="post-title">
		<a class="full-post" href="<?php the_permalink();?>"><?php the_title();?></a>
		</span>
		<div class="post-info">
		<span><i class="fa fa-calendar"></i><?php the_time('j F Y');?></span> 
		<span><i class="fa fa-eye"></i><?php echo get_post_meta( $post->ID, 'views', true ); ?></span>
		<span><i class="fa fa-commenting-o"></i><?php comments_number( '0', '1', '%'); ?></span>
		</div>
		<?php the_excerpt();?>
	</div>
</div>
</article>
<?php endwhile; ?><?php endif; ?>
Kama 3 года назад

Блин тебе наверное проще будет обратиться к специалистам. Код который ты скинул в целом норм, почему неправильно работает 'posts_per_page' нужно выяснить...

AHristich 3 года назад

Не знаю как и почему,но стало все нормалек отображаться.Есть подозрение на что-то "прилетевшее" с постами отсюда,т.к после удаления всех тест-постов,стало норм...Больше никаких мыслей по этому поводу нету...