カスタム フィールドに Meta-Box プラグインを使用しており、カスタム投稿タイプもあります。ユーザーがカスタムフィールドに何かを入力してからカスタム投稿タイプを保存すると、何かを計算し、計算された値に応じて別のカスタムフィールドに何かを書き込みます。これは正しく動作しないため、動作をテストして問題を見つけるために、より単純な関数に分解しました。これは、より単純な関数が行うことです:
-カスタム投稿タイプには2つのドロップダウン(カスタムフィールド)が表示されます-ユーザーは最初のドロップダウンで何かを選択し、投稿を保存/更新します-次に、関数は最初のドロップダウンから同じ選択された値/項目を2番目のドロップダウンで選択します下
私は save_post フックを使用しています。これは、選択した値を正しく取得し、update_post_meta() 関数を使用して 2 番目のカスタム フィールドに同じ値を設定します。投稿を保存して更新した後、値は DB に正しく書き込まれますが、管理インターフェイスのカスタム フィールドには正しい値が表示されません。これはコードです:
add_action( 'save_post', 'update_second_custom_field' );
function update_second_custom_field( $post_id ) {
$firstCustomFieldValue=get_post_meta($post_id, 'first_custom_field', true);
update_post_meta($post_id, 'second_custom_field', $firstCustomFieldValue);
$test = get_post_meta($post_id, 'second_custom_field', true);
_log($test);
}
2 番目のカスタム フィールドは、管理ビューで更新されないようです。私が何をしても、投稿を再開して、もう一度更新します。データベースに正しい値があるように見えても、常に標準値が表示されます。
ここで何が欠けていますか?
編集 さて、最初の投稿を修正する必要があります。値がDBに書き込まれていないようです。理由がわかりません。get_post_meta が正しい値を表示するのに、DB が古い値を保持するのはなぜですか。get_post_meta は DB から値を取得しませんか? 完全に迷っています^^。