@denism300

Почему не сохраняются нулевые значения метабоксов в Wordpress?

Есть блок произвольных полей. Если значение какого-либо поля равно 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); ?>
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
курим php, empty считает 0 пустым значением переменной https://www.php.net/manual/ru/function.empty.php
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы