function add_fkrk_google_address_box() { _log('add_fkrk_google_address_box()'); add_meta_box( 'google_address_form', # CSS id '住所検索', # meta_box のタイトル 'fkrk_google_address_form', # form表示関数 'spot', # post_type 'normal', # 編集画面での表示場所 (normal, advanced または side) 'high' # ボックスが表示される優先度 (high, core, default, low) ); add_meta_box( 'google_address_form', # CSS id '住所検索', # meta_box のタイトル 'fkrk_google_address_form', # form表示関数 'fukuraku_no_kai', # post_type 'normal', # 編集画面での表示場所 (normal, advanced または side) 'high' # ボックスが表示される優先度 (high, core, default, low) ); } add_action('add_meta_boxes', 'add_fkrk_google_address_box'); function fkrk_google_address_form() { _log('fkrk_google_address_form()'); global $post; //編集中の記事に関するデータを保存 wp_nonce_field(wp_create_nonce(__FILE__), 'fkrk_google_address_nonce'); //CSRF対策の設定(フォームにhiddenフィールドとして追加するためのnonceを「'my_nonce」として設定) get_template_part('include/templates/fkrk-google-address'); } function fkrk_google_address_save($post_id) { _log('fkrk_google_address_save()'); global $post; //編集中の記事に関するデータを保存 $nonce = isset($_POST['fkrk_google_address_nonce']) ? $_POST['fkrk_google_address_nonce'] : null; //設定したnonce を取得(CSRF対策) if (!wp_verify_nonce($nonce, wp_create_nonce(__FILE__))) { //nonce を確認し、値が書き換えられていれば、何もしない(CSRF対策) return $post_id; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } //自動保存ルーチンかどうかチェック。そうだった場合は何もしない(記事の自動保存処理として呼び出された場合の対策) if(!current_user_can('edit_post', $post->ID)) { return $post_id; } //ユーザーが編集権限を持っていない場合は何もしない。 if ( $_POST['post_type'] == 'spot' || $_POST['post_type'] == 'fukuraku_no_kai' ){ //'works' 投稿タイプの場合のみ実行 _log('fkrk_google_address_save():save'); //「material, photo」の入力フィールドに入力された情報を保存&更新するように指定 update_post_meta($post->ID, 'latlng', $_POST['latlng']); } } add_action('save_post', 'fkrk_google_address_save');