Как вывести записи в WordPress
Как вывести записи в WordPress? Используя WordPress, как обычный блоговый движок с готовой темой, подобный вопрос у нас бы не возник. Мы просто не вмешиваемся в алгоритмы работы CMS, записи сами как-то выводятся. В каком случае вывод записей WordPress нас начинает интересовать?
Тогда, когда мы собираемся из статичной HTML верстки сделать уникальную WordPress тему. А точнее, мы хотим предложить свои услуги по натяжки верстки на WordPress. Так вот, без умения выводить записи WordPress в любом месте сайта - вам будет никак не обойтись.
Структура темы под WordPress
Что представляет из себя тема WordPress? Это набор файлов (шаблоны), состоящих из HTML кода вперемешку с PHP кодом. В любой теме, как минимум должны быть два файла: index.php и CSS файл стилей. HTML код - это и есть верстка уникального дизайна, а PHP код состоит из функций и тегов, уже описанных в ядре WordPress, файлы ядра мы никогда не трогаем.
Запомните, что весь HTML код должен находится за пределами открывающих и закрывающих тегов PHP. Напротив, весь PHP код пишется только внутри тегов. Например выведем имя автора записи в цикле WordPress:
<p>Автор поста: <?php the_author(); ?></p>
В кодексе WordPress подробнейшим образом расписано, что делают эти теги шаблонов и как их вывести на сайте. Для создания темы WordPress с нуля, необходимо знать набор этих тегов шаблонов и как их применять.
Теги шаблонов вывода записей WordPress
the_permalink
the_title
the_time
the_content
the_author
the_excerpt
the_category
С помощью этих тегов шаблонов выводятся статьи на главной странице WordPress в шаблоне index.php.
Выводим заголовок поста, как ссылку на сам пост:
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
Выводим дату создания записи:
<small<<?php the_time('F jS, Y'); ?<</small<
Давайте выведем саму статью - контент, внутри тега div:
<div class="entry">
<?php the_content(); ?>
</div>
Внимание! Ничего не вывелось. Почему? Поскольку эти теги шаблонов выводят только внутри цикла, вне цикла они не работают. Мы должны весь этот код, поместить внутри цикла. Весь PHP и HTML код внутри цикла повторится столько раз, сколько будет у нас записей. Смотрите код ниже.
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<p>Сюда помещаем, весь код выше. Мы находимся внутри цикла.</p>
<?php endwhile; ?>
<?php endif; ?>
Давайте разберем, что означает код выше. Мы задаём условие, если в базе данных имеются записи, то будет выводится заголовок, дата создания и контент записи.
<?php if(have_posts()) : ?>
Если посты есть, то в цикле while выполняется функция the_post, которая занимается выводом всех записей, до тех пор, пока они есть.
<?php while(have_posts()) : ?>
Закончили цикл и условие.
<?php endwhile; ?>
<?php endif; ?>
Цикл будет работать до тех пор, пока имеются записи, количество вывода записей на страницу задаётся в настройках блога. Если записей больше, то на страничке появятся элементы пагинации. Таким образом на блоге будут выведены все записи, и WordPress автоматически создаст страниц столько, сколько надо.
Мы познакомились лишь с некоторыми функциями для построения темы для WordPress - это функции вывода записей. Однако здесь важно понять принцип, а не пытаться запомнить или заучить.
Практика
Рассмотрим вывод записей на примере темы Twenty Seventeen. Записи выводятся через тег шаблона get_template_part в цикле шаблона index.php, который передаёт в параметрах содержимое шаблона content.php.
<?php
if ( have_posts() ) :
/* Start the Loop */
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/post/content', get_post_format() );
endwhile;
endif;
?>
В шаблоне content.php выводится заголовок поста с ссылкой на сам пост и контент.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.