0

在 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 );
  }
}

但我注意到,这样它总是更新日期,如果它已经定义了。

如何仅在需要时添加日期?

4

1 回答 1

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 );
    }
  }
}
于 2012-11-18T12:26:17.847 回答