カスタムフィールドの自動更新

kentomurata 72views 更新:2016年6月7日

独自の関数をフックしてカスタムフィールドを更新しようとする際、適切なフックを選ばなければいけません。

例えばwp_insert_post_data内ではupdate_post_metaは使えません。(ここでupdate_post_metaの処理が行われた後もう一度更新が行われるので無効になってしまいます。)

function update_hoge($data){
  global $post;
  $post_id = $post->ID;
  update_post_meta($post_id, 'hoge', 'hogehogehoge');

  return $data;
}

add_filter('wp_insert_post_data', 'update_hoge', 99, 1);

以下のように、update_post_metaはアクションフックwp_insert_postの中で用いると無効になることなくカスタムフィールドを更新することができます。

function update_hoge($post_ID,$post){
  global $post;
  $post_id = $post->ID;
  update_post_meta($post_ID, 'hoge', 'hogehogehoge');
}

add_action('wp_insert_post', 'update_owner_latlng_by_address');

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません