WordPress имеет функцию под названием add_meta_box () .Используйте это, чтобы обернуть ваше поле формы, и оно будет форматировать аргумент $ _POST при отправке страницы.
Вы подключаетесь к add_meta_boxes для вызова функции, которая вызовет add_meta_box, и в этот момент вы можете передать ей несколько аргументов.
add_action( 'add_meta_boxes', 'yourname_create_metabox' );
public function yourname_create_metabox(){
if(is_admin()){
add_meta_box("a-meta-box-name", "Hi! I am a meta box", "your_metabox_markup_function", "", "", "");
}
}
Вы оборачиваете свою форму в эту функцию your_metabox и обязательно добавляете одноразовое поле для безопасности:
public function your_metabox_markup_function(){
global $post;
$meta = get_post_meta($post->ID, 'post_order');
wp_nonce_field(basename(__FILE__),'yourname_post_class_nonce');
// your form here
}
Затем вы можете сохранить форму:
public function yourname_save_metabox($post_id){
if(!isset($_POST['yourname_post_class_nonce']) || !wp_verify_nonce($_POST['yourname_post_class_nonce'],basename(__FILE__)))return $post_id;
if(isset( $_POST['post_order'] )){
// save however you need
}
}
add_action( 'save_post', 'yourname_save_metabox', 10);