我想保存一个带有所有帖子复选框的元数据,这是我的代码:
add_action('save_post','save_metaboxes');
function save_metaboxes($post_ID){
if(isset($_POST['is_viewpay'])) {
if(!empty($_POST['is_viewpay'])){
update_post_meta($post_ID, '_is_viewpay', 'active');
} else {
update_post_meta($post_ID, '_is_viewpay', '');
}
}
}
问题是当我取消选中复选框并保存我的帖子时,它始终保持检查状态。我不知道为什么。
感谢您的帮助!
答案 0 :(得分:1)
取消选中该复选框后,isset($_POST['is_viewpay'])
将评估为false
,以便跳过剩余的代码。
相反,你可以这样做:
if(isset($_POST['is_viewpay'])) {
update_post_meta($post_ID, '_is_viewpay', 'active');
} else {
update_post_meta($post_ID, '_is_viewpay', '');
}
作为旁注,强烈建议您使用Nonces(这有助于保护您的网页免受恶意攻击)。