Привет. Создаю кастомный метабокс, но данные из него по какой-то причине не обновляются в базе данных.
Вот я создаю сам metabox:function cgc_tour_meta_box() {
add_meta_box(
'tour_meta_box',
'Tournament Meta Box',
'cgc_display_meta_box', //callback
'tour',
'normal',
'high'
);
}
add_action( 'add_meta_boxes', 'cgc_tour_meta_box' );
С этим никаких трудностей не возникло. Метабокс отображается.
Создаю кастомное поле у метабокса и записываю туда значение из базы данных: function cgc_display_meta_box( $post ) {
$title = get_post_meta( $post -> ID, 'tour_title', true );
?>
<!-- Название турнира -->
<div class="meta-row">
<div class="meta-th">
<label for="tour-title" class="cgc-row-title">Tournament Title</label>
</div>
<div class="meta-td">
<input type="text" id="tour-title" name="tour-title" value="<?php echo $title ?>">
</div>
</div>
<?php
}
Эта функция вызывается при создании metabox(см.первый блок кода).
Все так же отлично работает. Создал в БД поле с ключом 'tour_title' и все нормально отобразилось.
А вот проблема возникла именно в обновлении данных:function cgc_meta_save( $post_id ) {
if ( isset( $_POST['tour_title'] ) && $_POST['tour_title'] != '' ) {
update_post_meta( $post_id, 'tour_title', sanitize_text_field( $_POST[ 'tour_title' ] ) );
}
}
add_action( 'save_post', 'cgc_meta_save' );
Просто не обновляются. Никак. Что тут может быть неправильно написано? Перерыл документацию, вроде бы все сделал все как надо, да и ошибок не выдает.
P.S Для теста сделал самый простенький примерчик(И то не работает). Всякими проверками и nonce_field'ами потом напичкаю.
Заранее благодарю!