Можно играть
19.12.19

Вывод последних записей WordPress с миниатюрами, без плагина и с плагином

Вывод последних записей WordPress с миниатюрами, без плагина и с плагином

Здравствуй, дорогой посетитель! По движку WP, как всегда, очень много вопросов особенно у новичков и поэтому, сегодня, тема этой статьи будет звучать так, как сделать вывод последних записей WordPress.

Все уже сказано и не раз

Хотя вся информация описана и переписана множество раз на различных ресурсах, я дам самое простое, лучшее и универсальное решение на этот вопрос. Ведь эта cms постоянно дорабатывается, улучшается, вносятся важные корректировки и, следовательно, меняются и функции вывода различного контента. Хоть и не так часто!

И соответственно, какой-то код работает на одной версии движка, а на другой просто не хочет. И по этой причине происходят баги или что еще хуже, попросту белый экран. Все же его видели хотя бы раз!?


Читайте также:


Что будем делать

В материале этой статьи, будем выводить анонсы — записи с миниатюрами, без плагина и с плагином. И так поехали!

С миниатюрами и без плагина

Этот код вставляем там где должен быть вывод записей, а это файлы: index.php, archive.php, category.php и если необходимо на главной front-page.php (зависит что выбрано в настройках «Чтение»). В коде подробно описал что и за что отвечает.

Реальный пример — главная страница этого блога.

<!--
Вставляем код на нужную страницу только один раз
================================================ -->
<div class="container main-container">
  <div class="row">
    <?php if ( have_posts() ) : ?>
      <?php while ( have_posts() ) : the_post(); ?>
        <div class="col-lg-6 col-xl-4 col-md-12">
          <article itemscope itemtype="http://schema.org/Article" class="post-ms-cat grid-article-item">
            <a href="<?php echo esc_url( get_permalink() ); ?>">
              <?php the_post_thumbnail( 'medium' ); ?>  <!-- Миниатюра -->
            </a>
            <div class="post-ms-cat-info">
              <div class="post-ms-meta-info">
                <div class="meta-date">
                  <i class="far fa-calendar-alt"></i>
                  <span><?php the_time(); ?></span>     <!-- Дата -->
                </div>
                <div itemprop="articleSection" class="meta-category">
                  <i class="far fa-folder"></i>
                  <?php the_category(', '); ?>          <!-- Категория -->
                </div>
              </div>
              <h2 itemprop="headline"><a rel="bookmark" href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></h2>
              <div itemprop="articleBody" class="post-ms-cat-excerpt">
                <?php echo get_the_excerpt(); ?>        <!-- Отрывок -->
              </div>
            </div>
          </article>
        </div>
        <?php endwhile; ?>
        <?php endif; ?>
  </div>
</div>

Код выше вставляем на страницу только один раз, так как по сути это будет «блог». Конструкцию ниже можно вставить на страницу неограниченное количество раз, к примеру, если на главной мы хотим показать анонсы последних записей из определенных рубрик.


Читайте также:


<!--
Вставляем код на нужную страницу неограниченное количество раз
================================================ -->
<div class="container main-container">
  <div class="row">
    <?php
      $query_args = array(      // Полная документация здесь (wp-kama.ru/function/wp_query)
        'cat' => '1',           // Из какой категории выводим
        'posts_per_page' => 6,  // Количество анонсов
        'offset' => 2,          // Отступ постов (аккуратнее с пагинацией)    
      )
    ?>
      <?php $query = new WP_Query( $query_args ); ?>
        <?php if ( $query->have_posts() ) : ?>
          <?php while ( $query->have_posts() ) : $query->the_post(); ?>
            <div class="col-lg-6 col-xl-4 col-md-12">
              <article itemscope itemtype="http://schema.org/Article" class="post-ms-cat grid-article-item">
                <a href="<?php echo esc_url( get_permalink() ); ?>">
                  <?php the_post_thumbnail( 'medium' ); ?>
                </a>
                <div class="post-ms-cat-info">
                  <div class="post-ms-meta-info">
                    <div class="meta-date">
                      <i class="far fa-calendar-alt"></i>
                      <span><?php the_time(); ?></span>
                    </div>
                    <div itemprop="articleSection" class="meta-category">
                      <i class="far fa-folder"></i>
                      <?php the_category(', '); ?>
                    </div>
                  </div>
                  <h2 itemprop="headline"><a rel="bookmark" href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></h2>
                  <div itemprop="articleBody" class="post-ms-cat-excerpt">
                    <?php echo get_the_excerpt(); ?>
                  </div>
                </div>
              </article>
            </div>
          <?php endwhile; ?>
        <?php wp_reset_postdata(); ?>
      <?php else : ?>
      <p><?php _e( 'Нет записей для отображения' ); ?></p>
    <?php endif; ?>
  </div>
</div>

Плагин

Настоятельно рекомендую использовать для этого плагин — Content Views. Решение просто незаменимое, если нет желания копаться в коде, нужно сделать быстро и плевать на чистоту кода :).

Ссылка

Его также можно использовать многократно при помощи шорткодов, т.е. вставлять «выборку» из записей куда угодно, не только на какую то определенную страницу, но и в сайдбар и конечно же в определенную запись для увеличения конверсии.

PRO версия

У него также есть PRO версия, которая может управлять страницами: категорий, архивов, блоговой, поисковой. Присутствует и фильтрация постов, ajax подгрузка по клику или бесконечная, отображение новостей в стиле: Masonry, Pinterest, Facebook Timeline, Glossary и много чего еще.

В общем, на сколько я гуглил, более функциональных аналогов не нашел. Но это, конечно, если не использовать какой-либо «элементор» для создания шаблона у которого подобный функционал идет уже из коробки или можно реализовать какими то сторонними дополнениями.

Пишите в комментариях если что-то не получается или непонятно, вместе разберемся!

На сегодня у меня все, до связи! С вами, как всегда был Дмитрий!