Здравствуйте!
Мне необходимо сохранять в базу не содержимое поля textarea, а содержимое div'а.
Что я делаю:
1) Создаю необходимый div (создаётся и выводится, с этим проблем нет);
2) получаю id и содержимое моего div'а через DOMDocument;
3) сохраняю через стандартную функцию update_post_meta().
// Регистрация/создание
add_action( 'add_meta_boxes', function() {
add_meta_box(
'my-div-container',
'My div',
function( $post ) {
wp_nonce_field( basename( __FILE__ ), 'my_div_nonce' );
$my_html = '<div id="my-div"></div>';
echo $my_html;
},
'post',
'normal',
'high'
);
});
// Сохранение
add_action( 'save_post', function( $post_id ) {
if ( !isset( $_POST['my_div_nonce'] ) || !wp_verify_nonce( $_POST['my_div_nonce'], basename( __FILE__ ) ) )
return $post_id;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
if ( !current_user_can( 'edit_post', $post_id ) )
return $post_id;
$post = get_post( $post_id );
if ( $post->post_type == 'post' ) {
// Получаем id и содержимое div'а
$my_dom = new DOMDocument;
if ( !empty( $my_html ) )
$my_dom->loadHTML( $my_html );
$my_id = $my_dom->getElementById( 'my-div' );
$my_value = $my_dom->getElementById( 'my-div' )->nodeValue;
update_post_meta(
$post_id,
$my_id,
$my_value
);
}
return $post_id;
});
echo $post_id;
К сожалению, не сохраняется.
Как заставить сохраняться?
Спасибо!