update_post_metaを実行すると2度処理されてしまう
-
1つの記事に対して、更新回数を記録するカスタムフィールド ‘revision’ を設けました。
更新ボタンを押すたびにupdate_post_meta()でインクリメントするだけの簡単なものです。
しかし、その記事に対して SCF::add_settingが実行された(状態で保存した)場合、+1 されるはずが +2 されてしまいます。
+10 で記述した場合は +20になってしまいます。function update_revision( $new_status, $old_status, $post ) { $rev_number = get_post_meta($post->ID , 'revision', true); if( empty($rev_number) ){ add_post_meta($post->ID, 'revision', 1 ); }else{ update_post_meta( $post->ID, 'revision', $rev_number + 1); } } add_action( 'transition_post_status', 'update_revision', 99, 3 ); function register_fields( $settings, $type, $id, $meta_type ) { if ( $type == 'post') { // SCF::add_setting( 'ユニークなID', 'メタボックスのタイトル' ); $Setting = SCF::add_setting( 'id-20', '記事設定' ); $Setting_array = array( array( 'type' => 'text', 'name' => 'test', 'label' => 'このフィールドはなくてもいい', 'default' => '', 'instruction' => '', ), ); // $Setting->add_group( 'ユニークなID', 繰り返し可能か, カスタムフィールドの配列 ); $Setting->add_group( 'pr_setting', false, $Setting_array ); $settings[] = $Setting; } return $settings; } add_filter( 'smart-cf-register-fields', 'register_fields', 10, 4 );
`
- The topic ‘update_post_metaを実行すると2度処理されてしまう’ is closed to new replies.