WordPress Зарегистрируйте новое поле REST
Регистрация нового поля rest в вашем ответе API делает ваш API более подробным. Вам не нужно создавать другую конечную точку для получения этих значений.
Допустим, вы работаете с постами WordPress. По умолчанию WordPress предоставляет все необходимые данные в ответе после API. Но что, если вы хотите добавить другие данные, например, ваши собственные данные интеграции или сторонние данные интеграции? В это время мы можем зарегистрировать новое поле REST в объекте.
См. приведенный ниже пример. Мы зарегистрировали имя поля post-meta-fields в нашем ответе на сообщение:
Шаги для регистрации нового поля rest: Вы должны добавить этот код в файл functions.php темы.
Шаг 1: Создайте функцию, которая регистрирует поле REST с помощью функции register_rest_field().
Первый параметр этой функции — это имя объекта, которое означает, в какой объект вы хотите добавить поля REST, такие как сообщение, термин, комментарий и т. д. Второй параметр — это имя поля, которое вы хотите сохранить. Третий параметр — это массив аргументов, таких как функция обратного вызова и схема.
PHP
<? php function register_all_post_meta_field() { register_rest_field( "post" , // Object post|term|comment etc. "post-meta-fields" , // Name of field array ( "get_callback" => "get_all_post_meta" , // Callback function "schema" => null, // Schema for the field ) ); } ?> |
Шаг 2: Создайте функцию обратного вызова get_all_post_meta() .
В этой функции мы добавим наш пользовательский код, например, то, что мы хотим показать в поле пост-мета-полей . Значение может быть любым, например целым числом, строкой, массивом и т. д.
PHP
<?php /* Callback function */ function get_all_post_meta( $object ) { // get the id of the post object array. $post_id = $object [ "id" ]; // return the post meta. return get_post_meta( $post_id ); } ?> |
Шаг 3: Добавьте хук действия rest_api_init , который будет запускать нашу функцию register_all_post_meta_field при инициализации REST API в WordPress.
PHP
<?php add_action( "rest_api_init" , "register_all_post_meta_field" ); ?> |
Полный код: ниже приведены все шаги в одном кадре.
PHP
<? php /* Register REST field */ add_action( "rest_api_init" , "register_all_post_meta_field" ); function register_all_post_meta_field() { register_rest_field( "post" , // Object post|term|comment etc. "post-meta-fields" , // Name of field array ( "get_callback" => "get_all_post_meta" , // Callback function "schema" => null, // Schema for the field ) ); } /* Callback function */ function get_all_post_meta( $object ) { // get the id of the post object array. $post_id = $object [ "id" ]; // return the post meta. return get_post_meta( $post_id ); } ?> |
Выход:
Надеюсь, это будет полезно!