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 に答える