Поскольку ваша переменная customFields
не является глобальной переменной, функция будет интерпретировать ее как ноль.Вам необходимо передать массив пользовательских ключей в качестве аргумента вашей функции.
function add_custom_fields($fields)
{
foreach($fields as $field) {
register_rest_field( 'post',$field,
array(
'get_callback' => 'rest_get_post_field',
'update_callback' => null,
'schema' => null,)
);
}
}
Затем, в вашей функции add_action вам необходимо передать один аргумент.
add_action('rest_api_init', 'add_custom_fields', 10, 1);
И, наконец, вызовите функцию do_action , указав customFields
переменную в качестве параметра вашей функции.
do_action('rest_api_init', $customFields)
Проверьте дополнительную информацию: Аргументы функции .
В качестве альтернативы (если то, что вам нужно сделать, это позволяет), просто определите свой собственный массив ключей внутри вашей функции.
function add_custom_fields()
{
$customFields = array("maker", "model", "ou", "prod_year", "barrel_length", "stock", "stock_length", "ejector", "links", "chokes", "condition", "original_case", "price");
foreach($customFields as $field) {
register_rest_field( 'post',$field,
array(
'get_callback' => 'rest_get_post_field',
'update_callback' => null,
'schema' => null,)
);
}
}