Этот урок учебника темы WordPress для начинающих будет посвящен тому, как мы можем получить доступ и вывести информацию, такую как ее ссылка, заголовок и многое другое, из каждого сообщения, когда оно находится внутри цикла сообщений. Мы делаем это с помощью тегов шаблона. В процессе мы также добавим в нашу тему шаблоны одиночного представления.
На предыдущем шаге мы добавили цикл сообщений, который включает в себя the_post()функцию. Эта функция устанавливает глобальные переменные и гарантирует, что мы можем использовать простые и интуитивно понятные вызовы функций, называемые тегами шаблона, пока мы находимся внутри whileцикла.
Наиболее распространенные теги шаблонов для использования в цикле сообщений
Это список наиболее распространенных тегов шаблона, которые вы хотели бы использовать для доступа к информации о публикации:
the_title()перекликается с названием поста.the_permalink()выводит постоянную ссылку/URL поста.the_content()выводит содержимое поста (из редактора)the_excerpt()повторяет отрывок из поста. Если поле выдержки пусто, будут отображены первые 55 слов из содержимого сообщения вместе с «…»the_ID()выводит идентификатор сообщения.the_category()отображает все связанные категории.the_tags()выводит все связанные теги.the_date()повторяет дату публикации сообщения.the_time()выводит время публикации поста.the_author()повторяет отображаемое имя автора сообщенияthe_post_thumbnail()выводит избранное изображение сообщения. Позже в этом руководстве мы узнаем, как добавить поддержку избранных миниатюр.
Есть много других. Если вам интересно, взгляните на документацию WordPress Codex по всем тегам сообщений. Загляните также за пределы заголовка «теги сообщений» — они немного разбросаны на этой странице.
Давайте приступим к реализации некоторых из этих тегов в нашем файле index.php. Я также добавлю очень простой HTML, чтобы лучше отформатировать вывод. Я призываю вас добавить свой собственный HTML! Добавьте div, span, разделы, заголовки и т. д. с любыми классами, которые вы хотите.
Конкретизация цикла в index.php
Внутри цикла в наш index.phpя хотел бы добавить ссылку, которая ведет на постоянную ссылку сообщения. Внутри ссылки я хотел бы повторить заголовок сообщения. Затем я также хотел бы повторить отрывок из сообщения и его категории.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php the_category(); ?>
</article>
endwhile;
the_posts_pagination();
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Что делает приведенный выше код;
- Строка № 5 добавляет HTML-
<article>тег с вызовом,post_class()который генерирует полезные классы сообщений — точно так же, какbody_class()мы использовали на предыдущем шаге. - В строке № 6-8 мы добавляем
<h2>тег для заголовка со ссылкой, которая ведет на постоянную ссылку сообщения (один просмотр). - Строка № 9 повторяет отрывок из поста.
- И в строке №10 мы повторяем категории поста. Поскольку я не передаю никаких аргументов этому вызову, по умолчанию используется
<ul>список.
Это приводит к следующему выводу при обновлении главной страницы:
Мы куда-то движемся! Я рекомендую вам посмотреть документацию для каждой функции тега, для каких параметров они принимают. Вы можете немного изменить вывод! И решите сами, какие теги шаблона использовать.
Попробуйте нажать на ссылку поста и увидите, что вы попадаете на эту единственную страницу поста. Теперь вы можете видеть, что цикл показывает только один пост. Однако, поскольку в настоящее время у нас есть только один шаблон index.php, одиночное представление также использует этот шаблон. Так что один вид не имеет большого смысла. Нам не нужно, чтобы он ссылался на себя, и мы хотим видеть полное содержание сообщения! Давайте исправим это, создав наш второй шаблон в нашей теме.
Создание шаблонов одного вида
Если вы помните, в уроке 1 учебника по темам WordPress для начинающих мы рассматривали иерархию шаблонов? Когда мы находимся на одном посте или странице, WordPress ищет single.phpпосты и page.phpстраницы. Если один из них не был найден, WordPress singular.phpиспользует общий доступ независимо от типа записи. Однако темы обычно реализуются single.phpи page.phpиз-за различий между постами и страницами. Страницы не имеют категорий и тегов, а поскольку страницы обычно используются для статического контента, они обычно не показывают дату публикации и комментарии. Хотя это полностью зависит от вас.
Мы создадим single.phpи page.phpдля нашей темы. Начнем сначала с постов.
Шаблон отдельного поста
В папке темы сделайте копию index.phpи переименуйте ее в single.php. Мы single.phpудалим постоянную ссылку (которая ссылается на себя) и заменим отрывок полным содержимым поста. И, наконец, нам не нужна здесь навигация по архиву.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Добавим еще немного полезной информации; Например, дата публикации и имя автора. Опять же, я рекомендую вам добавить HTML-теги, чтобы сделать HTML-структуру более приятной.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
<p>Posted: <?php the_date(); ?> at <?php the_time(); ?></p>
<p>Author: <?php the_author(); ?></p>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Функции the_time()и the_date()будут отображать дату и время в формате, который вы определили в панели администратора > Настройки. Однако вы можете переопределить это, указав другой формат даты в качестве параметра для этих методов.
Функция the_author()повторяет «отображаемое имя» автора. Если пользователь не указал никакого другого имени в своем профиле, это будет отображать имя пользователя.
Я настоятельно рекомендую вам никогда не распечатывать имена пользователей, так как это может представлять угрозу безопасности. Всегда следите за тем, чтобы авторы указали правильное имя или не используйте the_author().
Вот как один пост выглядит для меня сейчас. Потрясающий! Давайте сделаем одностраничный шаблон.
Одностраничный шаблон
Сделайте копию своего single.phpи переименуйте его в page.php. Все, что я сделал page.php, это удалил все, что не связано со страницами. Вывод категорий для страниц не будет работать, и я также удалил дату, время и автора. Вот что мы получаем page.php:
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Наконец-то мы начинаем что-то делать с нашими шаблонами! Однако я не могу повторить это достаточно; Я рекомендую вам изменить шаблоны и параметры функций по своему вкусу. Особенно добавление дополнительных оболочек HTML, чтобы упростить его стилизацию позже.
На следующем шаге мы немного отойдем от шаблонов и углубимся в кодирование серверной части тем WordPress.

