save_post というフックが用意されています。
https://codex.wordpress.org/Plugin_API/Action_Reference/save_post
なので、save_post で、「独自テーブルを更新する」を実行、という方法が使えます。
独自テーブルからカスタムフィールドにデータを移す、より簡単かどうかは分からないですけど。
Fumito MIZUNO様
ご回答有り難うございます。
投稿画面に独自フォームを表示させるってどうしたらいいのだろうと考えていたのですが、
そこは、カスタムフィールドを使う時と同様に、add_meta_box();を使えばよかったのを思い出しました!
合わせまして、こんな感じでやってみたいと思います。
add_action('admin_menu', 'add_extra_form');
add_action('save_post', 'save_extra_data');
function add_extra_form(){
add_meta_box('meta_data', '追加フォーム', 'extra_form', 'custom_post_type_name', 'normal', 'high');
}
function extra_form(){
global $post;
echo '<h2>追加フォーム</h2>';
echo '<input type="text" name="extra_data" value="' . get_extra_value($post->ID,'extra_data') . '" />';
}
function save_extra_data($post_id){
$extra_data = $_POST['extra_data'];
$column = 'extra_data';
/*
既に保存されているデータと比較 or $extra_dataが空の場合、で場合分けして、
独自テーブルに対して、追加・アップデート・削除を行う処理
*/
}
function get_extra_value($post_id, $column){
global $wpdb;
/*
独自テーブルから該当データを取ってくる処理
*/
}