在save_post上,如果此meta_key不存在,我想将过期日期(现在+ 30天)添加到帖子中,否则不执行任何操作。
我尝试在我的function.php中使用此代码:
add_action( 'save_post', 'update_date' );
function update_date( $post_id ) {
$expire = date( 'm/d/Y H:i:s', strtotime( '+' . '30' . ' days' ) );
$meta_exist = get_post_meta($post_id, 'expire_date', true);
if ($meta_exist == ''){
add_post_meta( $post_id, 'expire_date', $expire, true );
}
}
但是我注意到这种方式它总是更新日期,如果它已经定义了。
如何仅在需要时添加日期?
答案 0 :(得分:1)
验证帖子不是修订版,我稍微更改了您的代码:
add_action( 'save_post', 'update_date' );
function update_date( $post_id ) {
if (!wp_is_post_revision($post_id)) {
$expire = date( 'm/d/Y H:i:s', strtotime( '+' . '30' . ' days' ) );
$meta_exist = get_post_meta($post_id, 'expire_date', true);
if (!$meta_exist){
add_post_meta( $post_id, 'expire_date', $expire, true );
}
}
}