register_post_meta()
Реєструє метаполе (ключ довільного поля) для постів.
Є обгорткою функції register_meta для зручного реєстрації метаполів постів.
Щоб зробити те саме для таксономії, дивіться register_term_meta() .
Зареєстровані метаполя зберігаються у глобальному масиві $wp_meta_keys .
Працює на основі:
register_meta()
register_meta()
1 раз – 0.000126 сек
(швидко) | 50000 разів – 0.27 сек
(дуже швидко) |
PHP 7.1.11, WP 4.9.8
(швидко) | 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() .
список змін
З версії 4.9.8 | Введено. |
Код register_post_meta() 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 ); }