В стандартной теме WordPress вывод метаданных (дата публикации, автор, категории и теги) в ленте постов задается шаблонами темы и часто не отвечает требованиям дизайна или функционала конкретного сайта. В этой статье разберем, как гибко изменить вывод метаданных в выставке постов — на главной странице, в архиве или в любых других списках — с помощью кода и плагинов. Приведем примеры функций, которые помогут вам реализовать кастомный вывод и управление метаданными.
Почему важно кастомизировать вывод метаданных в WordPress
Метаданные — это важная часть поста с точки зрения SEO и удобства пользователей. Они позволяют быстро ориентироваться во времени публикации, авторстве и тематике. Однако стандартный вывод часто слишком громоздкий, не подходит под дизайн или содержит лишние элементы. Например, на сайте могут быть нужны только даты без автора, либо наоборот, только категории и теги.
Кастомизация метаданных помогает:
- Улучшить визуальное восприятие страниц с постами.
- Оптимизировать SEO, убрав лишние ссылки или добавив структурированные данные.
- Добавить или убрать дополнительные сведения, например, время чтения или количество комментариев.
Для этого мы можем использовать стандартные хуки темы, писать свои функции и применять плагины, если нужна более сложная настройка без кода.
Как изменить вывод метаданных с помощью кода в functions.php
Самый гибкий способ — создать функцию, которая формирует нужный вывод, и подключить ее в нужных шаблонах. Рассмотрим пример функции wprus_custom_post_meta(), которая выводит дату публикации и автора с кастомным HTML.
function wprus_custom_post_meta() {
$time_string = sprintf(
'<time class="entry-date" datetime="%1$s">%2$s</time>',
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() )
);
$author = sprintf(
'<span class="post-author">Автор: <a href="%1$s" rel="author">%2$s</a></span>',
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_html( get_the_author() )
);
echo '<div class="wprus-post-meta">' . $time_string . ' | ' . $author . '</div>';
}
Эту функцию можно вызвать в любом шаблоне, например, в content.php или archive.php вместо стандартного вывода метаданных.
Удаление стандартного вывода и замена на кастомный
Если тема использует хук the_meta или собственные функции для вывода метаданных, можно отписаться от них и добавить свою:
remove_action( 'some_theme_hook', 'some_theme_meta_function' );
add_action( 'some_theme_hook', 'wprus_custom_post_meta' );
Если таких хуков нет, придется напрямую менять шаблоны темы или делать переопределение через дочернюю тему.
Пример расширенного вывода метаданных с категориями и количеством комментариев
Допустим, нам нужно вывести дату, автора, категории и количество комментариев, разделяя их вертикальными чертами. Вот пример функции:
function wprus_advanced_post_meta() {
$date = '<time datetime="' . esc_attr( get_the_date( 'c' ) ) . '">' . esc_html( get_the_date() ) . '</time>';
$author = '<a href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a>';
$categories = get_the_category_list( ', ' );
$comments_num = get_comments_number();
$comments = $comments_num === 0 ? 'Нет комментариев' : ($comments_num === 1 ? '1 комментарий' : $comments_num . ' комментариев');
echo '<div class="wprus-post-meta">';
echo $date . ' | Автор: ' . $author . ' | Категории: ' . $categories . ' | Комментарии: ' . $comments;
echo '</div>';
}
Этот код учитывает различные варианты вывода и формирует удобочитаемую строку метаданных.
Автоматизация и расширение с помощью плагинов
Если вы не хотите писать код или нужна более универсальная настройка, можно использовать плагины:
- Clearfy Pro — включает функции оптимизации вывода метаданных, позволяет отключать или настраивать отдельные элементы через интерфейс.
- WPRemark — плагин для улучшения комментариев, который можно интегрировать с метаданными для вывода актуального количества и статусов.
Эти решения полезны для тех, кто хочет управлять метаданными без правки кода и использовать дополнительные возможности.
Как добавить структурированные данные для улучшения SEO
При кастомном выводе метаданных полезно добавить микроразметку Schema.org, чтобы поисковые системы лучше понимали информацию о дате, авторе и категориях.
Пример добавления микроразметки в функцию вывода даты и автора:
function wprus_post_meta_with_schema() {
$date = '<time class="entry-date" datetime="' . esc_attr( get_the_date( 'c' ) ) . '" itemprop="datePublished">' . esc_html( get_the_date() ) . '</time>';
$author = '<span itemprop="author" itemscope itemtype="http://schema.org/Person"><a href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '" itemprop="url"><span itemprop="name">' . esc_html( get_the_author() ) . '</span></a></span>';
echo '<div class="wprus-post-meta" itemscope itemtype="http://schema.org/BlogPosting">' . $date . ' | Автор: ' . $author . '</div>';
}
Это улучшит видимость сайта в поисковых системах и поможет получить расширенные сниппеты.
Советы по интеграции кастомного вывода метаданных в тему
Чтобы корректно интегрировать кастомный вывод, следуйте рекомендациям:
- Используйте дочернюю тему для переопределения шаблонов, чтобы не потерять изменения при обновлении.
- Выносите функции в
functions.phpдочерней темы или отдельный плагин, чтобы обеспечить переносимость. - Проверяйте совместимость с кэшированием и плагинами SEO.
- Старайтесь использовать стандартные хуки темы или WordPress для вывода метаданных, чтобы минимизировать правки шаблонов.
Следуя этим советам, вы сможете гибко и безопасно управлять метаданными в выставке постов WordPress.