Title: カスタム投稿タイプで、独自のテーブルにデータを保存させるような仕組
Last modified: 2017年1月29日

---

# カスタム投稿タイプで、独自のテーブルにデータを保存させるような仕組

 *  [yukiforweb](https://ja.wordpress.org/support/users/yukiforweb/)
 * (@yukiforweb)
 * [10年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%a7%e3%80%81%e7%8b%ac%e8%87%aa%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%ab%e3%83%87%e3%83%bc%e3%82%bf/)
 * いつも大変お世話になっております。
 * 既存のサイトをリニューアルするに当たり、
    一部のテーブルを現在のまま利用する必要
   が出てきました。
 * カスタムフィールドを使ってメタデータを保存させる仕組みはよく利用するのですが、
   
   独自のテーブルにデータを保存させるようなフォームを、 投稿画面に表示させたいと
   思っています。 （既に保存されている場合には、その内容をフォームに表示）
 * 何か、良いアイディア、参考になるかもしれないページ等ありましたら、教えて戴けま
   せんでしょうか。

2件の返信を表示中 - 1 - 2件目 (全2件中)

 *  [水野史土](https://ja.wordpress.org/support/users/ounziw/)
 * (@ounziw)
 * [10年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%a7%e3%80%81%e7%8b%ac%e8%87%aa%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%ab%e3%83%87%e3%83%bc%e3%82%bf/#post-177736)
 * save_post というフックが用意されています。
    [https://codex.wordpress.org/Plugin_API/Action_Reference/save_post](https://codex.wordpress.org/Plugin_API/Action_Reference/save_post)
   なので、save_post で、「独自テーブルを更新する」を実行、という方法が使えます。
 * 独自テーブルからカスタムフィールドにデータを移す、より簡単かどうかは分からない
   ですけど。
 *  トピック投稿者 [yukiforweb](https://ja.wordpress.org/support/users/yukiforweb/)
 * (@yukiforweb)
 * [10年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%a7%e3%80%81%e7%8b%ac%e8%87%aa%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%ab%e3%83%87%e3%83%bc%e3%82%bf/#post-177737)
 * 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;
           /*
           独自テーブルから該当データを取ってくる処理
           */
       }
       ```
   

2件の返信を表示中 - 1 - 2件目 (全2件中)

 トピック「カスタム投稿タイプで、独自のテーブルにデータを保存させるような仕組」に
は新たに返信することはできません。

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 2件の返信
 * 2人の参加者
 * 最後の返信者: [yukiforweb](https://ja.wordpress.org/support/users/yukiforweb/)
 * 最後の活動: [10年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%a7%e3%80%81%e7%8b%ac%e8%87%aa%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%81%ab%e3%83%87%e3%83%bc%e3%82%bf/#post-177737)
 * 状態: 未解決

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
