Есть блок произвольных полей. Если значение какого-либо поля равно 0, то значение этого поля не сохраняется в БД.
Как можно исправить?
Сохраняю так:
function extra_fields_update($post_id)
{
if (empty($_POST['extraMH']) || !wp_verify_nonce($_POST['extraMH_fields_nonce'], __FILE__) || wp_is_post_autosave($post_id) || wp_is_post_revision($post_id))
return false;
if (isset($_POST['extraMH']) && is_array($_POST['extraMH'])) {
$hp_meta = wp_clean($_POST['extraMH']);
foreach ($hp_meta as $key => $value) {
if (empty($value)) {
delete_post_meta($post_id, $key);
continue;
}
if (is_array($value) && !empty($value)) {
$value = serialize($value);
}
update_post_meta($post_id, $key, wp_slash($value));
}
}
return $post_id;
}
function wp_clean($var)
{
if (is_array($var)) {
return array_map('wp_clean', $var);
} else {
return is_scalar($var) ? sanitize_text_field($var) : $var;
}
}
add_action('save_post', 'extra_fields_update', 0); ?>