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

Собственные поля (custom fields) в WordPress — это мощный инструмент для расширения функциональности вашего сайта. Они позволяют добавлять дополнительную информацию к записям, страницам и любым другим типам контента. В этой статье мы подробно разберем, как создать и использовать собственные поля, используя как встроенные возможности WordPress, так и популярные плагины. Также приведем примеры кода, которые помогут вам интегрировать собственные поля в темы и плагины.

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

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

Использование собственных полей расширяет возможности CMS, позволяя создавать уникальные сайты без необходимости изобретать сложные конструкции и базы данных. Они отлично подходят для сайтов с каталогами, магазинами, событиями и пр.

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

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

По умолчанию в редакторе записей WordPress есть опция «Собственные поля», но она может быть скрыта. Чтобы включить ее, нужно в редакторе нажать на три точки в правом верхнем углу и выбрать «Настройки» > «Дополнительно» > включить «Собственные поля».

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

Если вы хотите, чтобы собственные поля отображались в шаблонах темы, то нужно вывести их программно. Например, чтобы вывести значение поля с ключом «wpone_price», в файле single.php темы можно добавить такой код:

<?php
$value = get_post_meta(get_the_ID(), 'wpone_price', true);
if ($value) {
    echo '<p>Цена: ' . esc_html($value) . '</p>';
}
?>

Пояснение к коду

Функция get_post_meta() получает значение метаполя по ключу для текущей записи. Третий параметр true возвращает одиночное значение, а не массив.

Обязательно используйте функции экранирования, например, esc_html(), чтобы избежать XSS-уязвимостей.

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

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

  • Advanced Custom Fields (ACF) — самый популярный плагин для создания любых полей с удобным интерфейсом и множеством типов данных.
  • Meta Box — мощный инструмент с большим количеством расширений и возможностью программного создания метаполей.

Рассмотрим пример создания поля с помощью ACF.

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

1. Установите и активируйте плагин Advanced Custom Fields.

2. В админке WordPress перейдите в меню «Custom Fields» и создайте новую группу полей.

3. Добавьте новое поле, например, «Цена» с ключом wpone_price, тип — число.

4. Настройте место отображения — например, для записей (post).

5. Сохраните группу.

Теперь при редактировании записи появится поле для ввода цены.

Чтобы вывести это поле в шаблоне, используйте функцию ACF:

<?php
$price = get_field('wpone_price');
if ($price) {
    echo '<p>Цена: ' . esc_html($price) . ' руб.</p>';
}
?>

Программное добавление собственных полей в WordPress

Если вам нужно автоматически добавлять или изменять собственные поля программно, используйте функцию update_post_meta. Например, при сохранении записи через хуки можно добавить или обновить метаполе.

Пример функции, которая добавляет поле с ключом wpone_custom_field и значением «Пример» при сохранении записи:

function wpone_add_custom_field($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (isset($_POST['wpone_custom_field'])) {
        update_post_meta($post_id, 'wpone_custom_field', sanitize_text_field($_POST['wpone_custom_field']));
    }
}
add_action('save_post', 'wpone_add_custom_field');

В форме редактирования записи нужно добавить поле ввода с именем wpone_custom_field, чтобы пользователь мог менять значение.

Вывод собственных полей в цикле WordPress

Если у вас есть множество записей с собственными полями, их можно вывести в списке. Например, в файле archive.php или index.php добавьте:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <?php
    $price = get_post_meta(get_the_ID(), 'wpone_price', true);
    if ($price) {
        echo '<p>Цена: ' . esc_html($price) . ' руб.</p>';
    }
    ?>
    <?php the_excerpt(); ?>
<?php endwhile; endif; ?>

Так вы сможете вывести цены или другие данные, которые добавили через собственные поля.

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

1. Всегда фильтруйте и проверяйте данные, поступающие в метаполя, особенно если они вводятся пользователями.

2. Для вывода данных используйте функции экранирования (esc_html(), esc_attr()), чтобы избежать XSS атак.

3. Не храните в собственных полях большие объемы данных или сложные структуры — лучше использовать отдельные таблицы или другие подходы.

4. При большом количестве метаданных используйте кэширование для снижения нагрузки на базу данных.

5. При создании плагинов или тем придерживайтесь префиксов в названиях функций и ключах метаполей (например, wpone_), чтобы избежать конфликтов.

Как отладить проблемы со скрытым кодом в WordPress
09.12.2025
Как использовать WPONE AJAX в WordPress для динамического обновления контента
06.12.2025
Автоматическое удаление спама в комментариях WordPress: практические решения
27.12.2025
Как избежать конфликтов между плагинами в WordPress
13.02.2026
Как создать собственный шорткод в WordPress
10.11.2025