Когда я сохраняю сообщение, данные в метабоксе не сохраняются в базе данных... где ошибка?
Мой код находится здесь: pastebin.
Спасибо!
Когда я сохраняю сообщение, данные в метабоксе не сохраняются в базе данных... где ошибка?
Мой код находится здесь: pastebin.
Спасибо!
На самом деле вы объявили свой массив $rest_custom_meta_fields
внутри функции restaurant_data_form
и пытаетесь использовать его в функции save_restaurant_custom_meta
, в этом случае массив выходит за рамки функции, поэтому foreach ($rest_custom_meta_fields as $field)
не работает.
Чтобы решить эту проблему, вы можете убрать массив из restaurant_data_form
, просто объявите array
прямо перед функцией restaurant_data_form
, например
$rest_custom_meta_fields = array(
array(
'label'=> 'Address',
'desc' => 'Plugin use it to get map',
'id' => $prefix.'text_address',
'type' => 'text'
),
...
);
И в вашей функции restaurant_data_form
function restaurant_data_form()
{
$prefix = 'rest_';
global $post, $rest_custom_meta_fields;
// ...
}
Так что это должно выглядеть примерно так (массив находится в глобальной области видимости)
$rest_custom_meta_fields = array(
array(...),
...
);
function restaurant_data_form()
{
$prefix = 'rest_';
global $post, $rest_custom_meta_fields;
// ...
}
Я надеюсь, что это решит проблему. Также в конце вашего кода вы использовали
echo add_action('save_post', 'save_restaurant_custom_meta');
Удалите echo
из начала оператора add_action(...)
.