Как реализовать хранение информации в мета-полях записи?

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

1. Создание мета-полей:
Создание мета-поля можно осуществить с помощью функции add_meta_box(), которая используется для добавления кастомных полей в "edit post/page screen". Функция требует указания идентификатора мета-поля, заголовка, функции обратного вызова и контекста, в котором оно будет отображаться.

Пример кода:

function custom_meta_box() {
    add_meta_box('custom-meta-box', 'Custom Meta Box', 'display_custom_meta_box', 'post', 'normal', 'high');
}
add_action('add_meta_boxes', 'custom_meta_box');

function display_custom_meta_box($post) {
    $value = get_post_meta($post->ID, 'custom-meta-field', true);
    ?>
    <label for="custom-meta-field">Custom Meta Field:</label>
    <input type="text" id="custom-meta-field" name="custom-meta-field" value="<?php echo esc_attr($value); ?>">
    <?php
}

В приведенном примере создается мета-поле с идентификатором 'custom-meta-box'. Оно будет отображаться внутри блока 'normal' на экране редактирования записи типа 'post' с приоритетом 'high'. Функция обратного вызова 'display_custom_meta_box' отвечает за отображение поля. Здесь мы выводим текстовое поле с идентификатором 'custom-meta-field' и сохраненным значением.

2. Сохранение значений мета-полей:
Для сохранения значения мета-поля требуется использовать функцию update_post_meta(). Функция требует указания идентификатора записи, идентификатора мета-поля и его значения.

Пример кода:

function save_custom_meta_box($post_id) {
    if (isset($_POST['custom-meta-field'])) {
        $value = sanitize_text_field($_POST['custom-meta-field']);
        update_post_meta($post_id, 'custom-meta-field', $value);
    }
}
add_action('save_post', 'save_custom_meta_box');

В данном примере функция 'save_custom_meta_box' вызывается при сохранении записи. Она проверяет, установлено ли значение поля 'custom-meta-field', и если да, то сохраняет его с использованием функции update_post_meta(). Функция sanitize_text_field() используется для безопасного очистки полученного значения.

3. Получение значений мета-полей:
Значения мета-полей можно получить с помощью функции get_post_meta(). Функция требует указания идентификатора записи и идентификатора мета-поля, и возвращает сохраненное значение.

Пример кода:

$value = get_post_meta(get_the_ID(), 'custom-meta-field', true);
echo 'Custom Meta Field Value: ' . $value;

В данном примере мы используем функцию get_post_meta() для получения значения мета-поля 'custom-meta-field' текущей записи. Значение сохраняется в переменную $value и выводится на экран.

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