WordPress как на ладони
Черная пятница на хостинге fornex.com! Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

register_post_meta() WP 4.9.8

Регистрирует метаполе (ключ произвольного поля) для постов.

Является обёрткой функции register_meta для удобной регистрации метаполей для постов.

Чтобы сделать тоже самое для таксономии, смотрите register_term_meta().

Работает на основе: register_meta()
✈ 1 раз = 0.000126с = быстро | 50000 раз = 0.27с = очень быстро PHP 7.1.11, WP 4.9.8

Хуков нет.

Возвращает

true/false.
true - если мета-ключ был успешно зарегистрирован в глобальном массиве $wp_meta_keys.
false - если не удалось зарегистрировать ключ.

Использование

register_post_meta( $post_type, $meta_key, $args );
$post_type(строка) (обязательный)
Тип поста для которого регистрируется метаполе. Передайте пустую строку для регистрации мета-ключа для всех существующих типов постов.
$meta_key(строка) (обязательный)
Название ключа, который нужно зарегистрировать.
$args(массив) (обязательный)

Данные описывающие метаполе. По умолчанию такие:

$args = array(
	'type'              => 'string',
	'description'       => '',
	'single'            => false,
	'sanitize_callback' => null,
	'auth_callback'     => null,
	'show_in_rest'      => false,
);

Описание каждого параметра смотрите в функции register_meta().

#1 Регистрация метаполя только для страниц

register_post_meta( 'page', 'my_meta_key', array(
	'show_in_rest'      => true,     // Добавим в ответ REST
	'sanitize_callback' => 'absint', // Обработаем значение поля при сохранение его в базу, функцией absint()
) );

Теперь метаполе c ключом 'my_meta_key' будет зарегистрировано только для страниц.

Тоже самое можно сделать с помощью register_meta(), так:

register_meta( 'post', 'my_meta_key', array(
	'object_subtype'    => 'page', // тип поста
	'show_in_rest'      => true,
	'sanitize_callback' => 'absint',
) );

#2 Еще пример

Дополнительные примеры и нюансы использования смотрите на странице функции register_meta().

Код register_post_meta: wp-includes/post.php VER 4.9.8

<?php
function register_post_meta( $post_type, $meta_key, array $args ) {
	$args['object_subtype'] = $post_type;

	return register_meta( 'post', $meta_key, $args );
}

Cвязанные функции

Из метки: Расширения WP (доп возможности регистрация)

Еще из метки: metadata (метаданные)

campusboy 3061youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться