Как добавить собственные метаданные к записям WordPress

Метаданные — это дополнительные данные, которые можно привязать к записям, страницам или другим типам записей WordPress. Они позволяют хранить и отображать уникальную информацию, которая отсутствует в стандартных полях записи. Например, вы можете добавить цену, рейтинг, дату события или любую другую информацию. В этой статье мы подробно рассмотрим, как добавить собственные метаданные к записям WordPress, используя как плагины, так и собственный код.

Что такое собственные метаданные в WordPress и зачем они нужны

По умолчанию WordPress позволяет добавлять метаданные к записям через стандартные «Пользовательские поля». Однако интерфейс устарел и не всегда удобен для конечных пользователей. Собственные метаданные дают возможность расширить функционал сайта, добавляя уникальные свойства к записям. Например, если вы ведёте блог о книгах, вы можете добавить поле «Автор», «Жанр» и «Год издания».

Использование собственных метаданных полезно для:

  • Создания более структурированной информации;
  • Фильтрации и сортировки записей по дополнительным параметрам;
  • Отображения уникальных данных в шаблонах;
  • Интеграции с плагинами и внешними сервисами.

Важно понимать, что метаданные хранятся в таблице wp_postmeta, связанной с ID записи, что обеспечивает эффективное хранение и поиск.

Использование плагинов для добавления и управления метаданными

Если вы не хотите писать код, можно воспользоваться плагинами, которые упрощают создание и отображение метаданных. Рассмотрим два популярных решения:

1. Advanced Custom Fields (ACF)

Плагин ACF — один из самых популярных инструментов для добавления собственных полей. Он даёт удобный интерфейс для создания различных типов полей (текст, число, дата, изображение, выбор из списка и др.) и управления их выводом.

Основные преимущества ACF:

  • Простой визуальный редактор полей;
  • Гибкие условия отображения полей;
  • Поддержка повторяемых и групповых полей;
  • Разнообразие типов полей;
  • Интеграция с темами и шаблонами через функции.

Пример создания поля «Цена» с помощью ACF:

  1. Установите и активируйте плагин Advanced Custom Fields.
  2. Перейдите в меню «Пользовательские поля» → «Добавить новую». Назовите группу, например, «Дополнительные данные товара».
  3. Добавьте поле с типом «Число» и названием «Цена».
  4. Установите, чтобы поле отображалось для записей определённого типа, например, «Товар».

Для вывода значения в шаблоне используйте функцию:

echo get_field('цена');

2. Meta Box

Meta Box — ещё один мощный плагин для работы с метаданными. Он более ориентирован на разработчиков и предлагает множество расширений.

Преимущества:

  • Широкие возможности кастомизации;
  • Поддержка сложных полей и повторяемых групп;
  • Возможность создания метабоксов с помощью кода;
  • Лёгкое отображение и сохранение данных.

Meta Box хорош тем, что вы можете быстро создавать метабоксы прямо из кода, что рассмотрим далее.

Как добавить собственные метаданные к записям WordPress с помощью кода

Если вы хотите полный контроль и не зависеть от плагинов, можно добавить метаданные с помощью собственного кода. Рассмотрим пошаговое создание метабокса и сохранение данных.

1. Регистрируем метабокс для записи

Добавим метабокс с полем «wpsell_price» для хранения цены товара.

function wpsell_add_custom_meta_box() {
    add_meta_box(
        'wpsell_price_meta_box',
        'Цена товара',
        'wpsell_price_meta_box_callback',
        'post',
        'side',
        'default'
    );
}
add_action('add_meta_boxes', 'wpsell_add_custom_meta_box');

function wpsell_price_meta_box_callback($post) {
    wp_nonce_field('wpsell_save_price_data', 'wpsell_price_meta_box_nonce');
    $value = get_post_meta($post->ID, '_wpsell_price', true);
    echo '<label for="wpsell_price_field">Введите цену:</label>';
    echo '<input type="number" id="wpsell_price_field" name="wpsell_price_field" value="' . esc_attr($value) . '" step="0.01" />';
}

2. Сохраняем данные метаданных

function wpsell_save_price_meta_box_data($post_id) {
    if (!isset($_POST['wpsell_price_meta_box_nonce'])) return;
    if (!wp_verify_nonce($_POST['wpsell_price_meta_box_nonce'], 'wpsell_save_price_data')) return;
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;

    if (isset($_POST['wpsell_price_field'])) {
        $price = sanitize_text_field($_POST['wpsell_price_field']);
        update_post_meta($post_id, '_wpsell_price', $price);
    }
}
add_action('save_post', 'wpsell_save_price_meta_box_data');

3. Вывод метаданных в шаблоне

Чтобы вывести цену в шаблоне single.php или другом, используйте:

$price = get_post_meta(get_the_ID(), '_wpsell_price', true);
echo 'Цена: ' . esc_html($price) . ' руб.';

Как использовать собственные метаданные для фильтрации и сортировки записей

Метаданные полезны не только для хранения, но и для выборки записей по дополнительным критериям. Например, можно вывести все товары с ценой меньше 1000 рублей.

Для этого используется класс WP_Query с аргументом meta_query:

$args = [
    'post_type' => 'post',
    'meta_query' => [
        [
            'key' => '_wpsell_price',
            'value' => 1000,
            'compare' => '<',
            'type' => 'NUMERIC'
        ]
    ]
];
$query = new WP_Query($args);
if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo '<h2>' . get_the_title() . '</h2>';
        echo '<p>Цена: ' . get_post_meta(get_the_ID(), '_wpsell_price', true) . '</p>';
    }
    wp_reset_postdata();
} else {
    echo 'Товары не найдены';
}

Также можно сортировать записи по метаданным, например, по цене:

$args = [
    'post_type' => 'post',
    'meta_key' => '_wpsell_price',
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
];
$query = new WP_Query($args);
// Вывод аналогичен предыдущему примеру

Советы и лучшие практики при работе с метаданными в WordPress

Работа с метаданными требует аккуратности, чтобы не создавать конфликтов и не замедлять сайт.

  • Используйте уникальные префиксы для ключей метаданных, например, _wpsell_price, чтобы избежать коллизий.
  • Сохраняйте данные через защиту nonce и проверку прав пользователя, чтобы избежать уязвимостей.
  • Оптимизируйте запросы с метаданными, избегайте сложных и частых тяжелых запросов с большим количеством meta_query.
  • Используйте кэширование для ускорения вывода данных из метаданных.
  • При необходимости используйте специализированные плагины, чтобы не писать лишний код и не тратить время.

Таким образом, добавление собственных метаданных расширяет возможности WordPress и позволяет сделать сайт более функциональным и удобным для пользователей и администраторов.

WooCommerce для российских продавцов: настройка платежей и фискализации
07.06.2026
Проверка уникальности контента в WordPress: как реализовать и автоматизировать
07.01.2026
Как автоматизировать создание отзывов на сайте WordPress с помощью плагинов и кода
12.04.2026
Как установить виджеты в WordPress с помощью WPCommunity
07.02.2026
Как создать многоязычные URL в WordPress без плагинов
31.12.2025

Совсем скоро здесь заработает сайт о вордпресс. И будет он связан с продажами, магазинами или чем-то таким.