Вывод постов WordPress по категории
В этой статье мы расмотрим как вывести блок постов/новосте в WordPress по нашему примеру.
Для начала посмотри готовую конструкцию и обсудим его.
<div class="blog-post">
<?php
$temp = $wp_query; $wp_query= null;
$wp_query = new WP_Query(); $wp_query->query([ 'category_name' => 'news' , 'posts_per_page' => 3 , 'paged' => $paged]);
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<div class="col-lg-4">
<div class="post-content">
<a href="<?php the_permalink(); ?>" class="entry-featured-image-url"><?php echo get_the_post_thumbnail( $id, 'thumbnail', array('class' => 'alignleft') ); ?> </a>
<h3 class="post-title">
<a href="<?php the_permalink(); ?>">
<?php trim_title_chars(55, '...'); ?>
</a>
</h3>
<div class="metas">
<div class="read-time"> <i class="far fa-clock"></i> <span><?php the_time('d F Y'); ?></span></div>
</div>
</div>
</div>
<?php endwhile; ?>
</div>
Мы начинаем цыкл и перебираем псты по категории которую назвали news
и поставили отображать 3 новости на страницу. Это значение можно менять по нужде. Так же внутри цыкла мы поставили col-lg-4
что бы выводить по 3 поста в ряд. Не забудьте про <div class="row">
что бы bootstrap правильно сработал.
<?php the_permalink(); ?>
— мы добавили для ссылки на пост
Так же сделали ссылку на пост по нажатию на картинку.
‘category_name' => 'news'
— мы указываем какою категорию будет перебирать
‘posts_per_page' => 3
— сколько статье всего выводить
<?php echo get_the_post_thumbnail( $id, 'thumbnail', array('class' => 'alignleft') ); ?>
— мы указываем что будет выводить изображение поста, thumbnail
— разрмер изображения.
<?php the_time('d F Y'); ?>
— выводим когда опубликована статья.
Заголовок поста поместили в h3
и поставили ограничения для количества символов, что бы это работало нужно добавить код в function.php
function trim_title_chars($count, $after) {
$title = get_the_title();
if (mb_strlen($title) > $count) $title = mb_substr($title,0,$count);
else $after = '';
echo $title . $after;
}
Дальше идет вывод даты поста и конец цыкла.