Содержание
Здравствуй, дорогой посетитель! По движку WP, как всегда, очень много вопросов особенно у новичков и поэтому, сегодня, тема этой статьи будет звучать так, как сделать вывод последних записей WordPress.
Все уже сказано и не раз
Хотя вся информация описана и переписана множество раз на различных ресурсах, я дам самое простое, лучшее и универсальное решение на этот вопрос. Ведь эта cms постоянно дорабатывается, улучшается, вносятся важные корректировки и, следовательно, меняются и функции вывода различного контента. Хоть и не так часто!
И соответственно, какой-то код работает на одной версии движка, а на другой просто не хочет. И по этой причине происходят баги или что еще хуже, попросту белый экран. Все же его видели хотя бы раз!?
Читайте также:
- WordPress: пропали картинки из постов. Виноват srcset
- Предыдущая и следующая запись WordPress с миниатюрой, заголовком и отрывком
- Функциональная html карта сайта WordPress без плагина
Что будем делать
В материале этой статьи, будем выводить анонсы — записи с миниатюрами, без плагина и с плагином. И так поехали!
С миниатюрами и без плагина
Этот код вставляем там где должен быть вывод записей, а это файлы: 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. Решение просто незаменимое, если нет желания копаться в коде, нужно сделать быстро и плевать на чистоту кода :).
Ссылка
ru.wordpress.org/plugins/content-views-query-and-display-post-page
Его также можно использовать многократно при помощи шорткодов, т.е. вставлять «выборку» из записей куда угодно, не только на какую то определенную страницу, но и в сайдбар и конечно же в определенную запись для увеличения конверсии.
PRO версия
У него также есть PRO версия, которая может управлять страницами: категорий, архивов, блоговой, поисковой. Присутствует и фильтрация постов, ajax подгрузка по клику или бесконечная, отображение новостей в стиле: Masonry, Pinterest, Facebook Timeline, Glossary и много чего еще.
В общем, на сколько я гуглил, более функциональных аналогов не нашел. Но это, конечно, если не использовать какой-либо «элементор» для создания шаблона у которого подобный функционал идет уже из коробки или можно реализовать какими то сторонними дополнениями.
Пишите в комментариях если что-то не получается или непонятно, вместе разберемся!
На сегодня у меня все, до связи! С вами, как всегда был Дмитрий!