Метаданные – важная часть любой CMS, в том числе и WordPress. Они позволяют хранить дополнительную информацию о постах, страницах, пользователях и других объектах. Правильное использование метаданных помогает не только структурировать контент, но и улучшить SEO, а также повысить удобство администрирования сайта. В этой статье мы подробно разберем, как добавлять, получать и использовать метаданные в WordPress, а также приведем примеры кода и популярных плагинов.
Что такое метаданные в WordPress и зачем они нужны
В WordPress метаданные — это данные, хранящиеся в специальных таблицах базы данных, которые связаны с основными объектами: постами (postmeta), пользователями (usermeta), терминами таксономий (termmeta) и комментариями (commentmeta). Они позволяют прикреплять к этим объектам дополнительную информацию, не меняя структуру самой записи.
Примером метаданных может быть цена товара в интернет-магазине, дата события, рейтинг статьи или дополнительные настройки отображения. Благодаря метаданным можно создавать кастомные поля, которые расширяют стандартные возможности WordPress.
Использование метаданных полезно для:
- Сохранения дополнительной информации без изменения структуры базы данных;
- Оптимизации вывода контента на сайте;
- Улучшения SEO за счет правильной разметки данных;
- Создания гибких и настраиваемых шаблонов.
Как добавлять и получать метаданные в WordPress
Функции для работы с метаданными постов
Самые распространённые функции для работы с метаданными постов:
add_post_meta($post_id, $meta_key, $meta_value, $unique = false)– добавляет новое мета-значение;update_post_meta($post_id, $meta_key, $meta_value, $prev_value = '')– обновляет существующее мета-значение;get_post_meta($post_id, $meta_key, $single = false)– получает мета-значение;delete_post_meta($post_id, $meta_key, $meta_value = '')– удаляет мета-значение.
Пример добавления и получения пользовательского поля "wpassist_rating":
function wpassist_add_post_rating($post_id, $rating) {
add_post_meta($post_id, 'wpassist_rating', $rating, true);
}
function wpassist_get_post_rating($post_id) {
return get_post_meta($post_id, 'wpassist_rating', true);
}Используйте эти функции в хуках или в шаблонах для сохранения и отображения данных.
Работа с пользовательскими полями через интерфейс
В WordPress по умолчанию есть возможность добавлять пользовательские поля из редактора записи, но этот функционал часто отключен. Чтобы его включить, в редакторе откройте «Настройки экрана» и активируйте «Пользовательские поля».
Однако для более удобного и мощного управления метаданными рекомендуется использовать плагины, которые мы рассмотрим далее.
Примеры плагинов для работы с метаданными
Advanced Custom Fields (ACF)
ACF – один из самых популярных плагинов для добавления и управления пользовательскими полями в WordPress. Он предоставляет удобный интерфейс для создания полей разных типов: текст, выбор, дата, изображение и многое другое.
С помощью ACF вы можете создавать метаданные для постов, пользователей, терминов и даже опций сайта, а затем выводить их в шаблонах при помощи функций:
the_field('wpassist_custom_field');
// или
$value = get_field('wpassist_custom_field');Это значительно упрощает работу и исключает необходимость писать много кода вручную.
Meta Box
Meta Box – мощный и гибкий плагин, который позволяет создавать мета-боксы и пользовательские поля с помощью кода или интерфейса. Он поддерживает огромный набор типов полей и интеграции с другими плагинами.
Пример создания мета-бокса с помощью Meta Box:
add_filter('rwmb_meta_boxes', 'wpassist_register_meta_boxes');
function wpassist_register_meta_boxes($meta_boxes) {
$meta_boxes[] = [
'title' => 'Информация о рейтинге',
'post_types' => ['post'],
'fields' => [
[
'id' => 'wpassist_rating',
'name' => 'Рейтинг',
'type' => 'number',
'min' => 1,
'max' => 10,
],
],
];
return $meta_boxes;
}Использование метаданных для SEO и структурированных данных
Метаданные можно использовать для добавления структурированных данных (schema.org), которые улучшают видимость сайта в поисковых системах. Например, можно добавить рейтинг статьи, дату публикации, автора и другую важную информацию.
Для этого достаточно вывести метаданные в формате JSON-LD в <head> или в теле страницы:
function wpassist_add_json_ld() {
if (is_single()) {
global $post;
$rating = get_post_meta($post->ID, 'wpassist_rating', true);
$data = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => get_the_title(),
'author' => get_the_author(),
'datePublished' => get_the_date('c'),
'aggregateRating' => [
'@type' => 'AggregateRating',
'ratingValue' => $rating ?: 5,
'reviewCount' => 1
]
];
echo '<script type="application/ld+json">' . json_encode($data) . '</script>';
}
}
add_action('wp_head', 'wpassist_add_json_ld');Это позволит поисковикам корректно распознавать и использовать ваши метаданные для расширенных сниппетов.
Работа с пользовательскими метаданными для пользователей и таксономий
Метаданные можно хранить не только для постов, но и для пользователей, терминов таксономий и комментариев. Для этого есть аналогичные функции:
add_user_meta(),get_user_meta(),update_user_meta()add_term_meta(),get_term_meta(),update_term_meta()add_comment_meta(),get_comment_meta(),update_comment_meta()
Пример добавления метаданных к пользователю:
function wpassist_add_user_favorite_color($user_id, $color) {
update_user_meta($user_id, 'wpassist_favorite_color', $color);
}
function wpassist_get_user_favorite_color($user_id) {
return get_user_meta($user_id, 'wpassist_favorite_color', true);
}Такой подход расширяет возможности персонализации сайта и позволяет создавать более гибкие решения.