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

|

Уникальные метаполя (custom fields) в WordPress позволяют расширить стандартные возможности записи, добавляя свои дополнительные данные, которые можно использовать для различных целей: от SEO и маркетинга до кастомизации отображения контента. В этой статье подробно разберём, как создавать и использовать уникальные метаполя, как хранить и выводить их, а также рассмотрим примеры кода и полезные плагины.

Что такое уникальные метаполя и зачем они нужны в WordPress

Метаполя — это дополнительная информация о записи, хранящаяся в базе данных как пары «ключ-значение». WordPress из коробки поддерживает метаполя, но часто требуются уникальные, специально созданные для конкретных задач.

Например, для сайта yelly.ru можно добавить метаполя с рейтингом статьи, автором обзора, датой проведения тестирования и пр. Это позволит гибко управлять контентом и создавать кастомные шаблоны вывода.

Уникальные метаполя решают следующие задачи:

Как создать уникальные метаполя вручную: добавление через код

Для начала рассмотрим способ создания метаполей без плагинов, напрямую через код в файле темы functions.php или в собственном плагине. Такой подход даёт полный контроль и минимизирует нагрузку.

Регистрация метабокса для ввода метаполя в админке

Добавим метабокс с полем "Рейтинг статьи" (rating) к записям:

function yelly_add_custom_meta_box() {
    add_meta_box(
        'yelly_rating_meta',
        'Рейтинг статьи',
        'yelly_render_rating_meta_box',
        'post',
        'side',
        'default'
    );
}
add_action('add_meta_boxes', 'yelly_add_custom_meta_box');

function yelly_render_rating_meta_box($post) {
    wp_nonce_field('yelly_save_rating_meta', 'yelly_rating_nonce');
    $value = get_post_meta($post->ID, '_yelly_rating', true);
    echo '<label for="yelly_rating_field">Введите рейтинг (1-5): </label>';
    echo '<input type="number" id="yelly_rating_field" name="yelly_rating_field" value="' . esc_attr($value) . '" min="1" max="5" />';
}

Сохранение значения метаполя

Добавим проверку и сохранение введённого значения:

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

    if (isset($_POST['yelly_rating_field'])) {
        $rating = intval($_POST['yelly_rating_field']);
        if ($rating >= 1 && $rating <= 5) {
            update_post_meta($post_id, '_yelly_rating', $rating);
        } else {
            delete_post_meta($post_id, '_yelly_rating');
        }
    }
}
add_action('save_post', 'yelly_save_rating_meta');

Вывод уникальных метаполей на сайте

Чтобы вывести рейтинг на странице записи, достаточно использовать функцию:

function yelly_display_rating() {
    global $post;
    $rating = get_post_meta($post->ID, '_yelly_rating', true);
    if ($rating) {
        echo '<div class="yelly-rating">Рейтинг статьи: ' . esc_html($rating) . ' / 5</div>';
    }
}

Вы можете вызвать yelly_display_rating() в файле шаблона single.php или использовать через хук the_content для автоматической вставки.

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

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

К примеру, с ACF можно создать поле "Рейтинг" с типом "число" и задать диапазон 1-5, а затем вывести его в теме с помощью:

if (function_exists('get_field')) {
    $rating = get_field('rating');
    if ($rating) {
        echo '<div class="yelly-rating">Рейтинг статьи: ' . esc_html($rating) . ' / 5</div>';
    }
}

Для быстрого старта ACF — отличный выбор, а для более сложных проектов — Meta Box или Pods.

Оптимизация и безопасность работы с метаполями

При работе с метаполями важно:

Пример комплексного использования уникальных метаполей для фильтрации записей

Предположим, вы хотите вывести список статей с рейтингом выше 3. Для этого создадим WP_Query с параметром метаполя:

$args = [
    'post_type' => 'post',
    'meta_query' => [
        [
            'key' => '_yelly_rating',
            'value' => 3,
            '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>';
        yelly_display_rating();
    }
    wp_reset_postdata();
} else {
    echo 'Нет статей с рейтингом выше 3';
}

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

Заключение

Уникальные метаполя — мощный инструмент для расширения функционала WordPress. Их можно создавать вручную через код или с помощью плагинов, что позволяет гибко настраивать контент под задачи проекта. Важно соблюдать безопасность и оптимизацию при работе с метаполями, чтобы сайт работал быстро и надёжно.

Для быстрого добавления и управления метаполями рекомендуем обратить внимание на Advanced Custom Fields с удобным интерфейсом и широкой функциональностью.

Как создать выборочное отображение постов в WordPress по таксономиям с примерами кода
20.01.2026
Как создать собственный виджет в WordPress: практические примеры и советы
23.11.2025
Как автоматически удалять старые вариации товаров в WooCommerce
06.06.2026
Как избежать проблемы при удалённой работе с WordPress через FTP
07.12.2025
Как полностью удалить загруженное видео из медиабиблиотеки WordPress без остаточных файлов
25.04.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее