Виведення постів WordPress за категорією

Vyvod postov wordpress po kategorii

У цій статті ми розглянемо як вивести блок постів/новини в 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(); ?> — ми додали посилання на пост

Так само зробили посилання на пост за натисканням на картинку.

‘c ategory_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;
}

Далі йде виведення дати посту та кінець циклу.