register_post_meta() WP 4.9.8

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

Є обгорткою функції register_meta для зручного реєстрації метаполів постів.

Щоб зробити те саме для таксономії, дивіться register_term_meta() .

Зареєстровані метаполя зберігаються у глобальному масиві $wp_meta_keys .

Працює на основі:
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() .

Приклади

0

#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',
)));
0

#2 Ще приклад

Додаткові приклади та нюанси використання дивіться на сторінці функції register_meta() .

список змін

З версії 4.9.8Введено.

Код register_post_meta() WP 6.0.2

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

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *