因此,我创建了一个元框用于评估。有时,评分值(5分之一)为零。
在输入中输入0并保存数据时,不会进行处理,因为0在语句中也表示false:
if ($meta_value) ...
我想知道是否有人知道保存零值的方法?
我找到的唯一答案是输入0x0,然后将其转换(根据:https://wordpress.stackexchange.com/a/96536/17411), 但对用户来说,解释一下,然后再让他们记住,这似乎是一项令人困惑的任务。。
这是我的save\\u元:
function save_custom_meta($post_id) {
global $meta_review_fields_1;
// Verify nonce
if (!wp_verify_nonce($_POST[\'custom_meta_box_nonce\'], basename(__FILE__)))
return $post_id;
// Check autosave
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE)
return $post_id;
// Check permissions
if (\'page\' == $_POST[\'post_type\']) {
if (!current_user_can(\'edit_page\', $post_id))
return $post_id;
} elseif (!current_user_can(\'edit_post\', $post_id)) {
return $post_id;
}
// Loop and save: Review
foreach ($meta_review_fields_1 as $field_1) {
$old_1 = get_post_meta($post_id, $field_1[\'id\'], true);
$new_1 = $_POST[$field_1[\'id\']];
if ($new_1 && $new_1 != $old_1) {
update_post_meta($post_id, $field_1[\'id\'], $new_1);
} elseif (\'\' == $new_1 && $old_1) {
delete_post_meta($post_id, $field_1[\'id\'], $old_1);
}
}
请注意,如果为空,我需要它删除其他字段的内容,只需要允许值为0的评级输入。