Я создал метабокс WordPress с пользовательским типом записи ('inventaire'
).Я хотел бы создать inv_content
таксономию, которая содержится в редактируемом элементе div (потому что он предназначен для создания таблиц и их мгновенного редактирования).
Однако у меня сложилось впечатление, что WordPress не принимает редактируемый divзаписей, потому что в моей функции сохранения сообщений $_POST['inv_content']
не существует.
В этом ли проблема?Я пробовал с <input type='text'>
, но он не отображает содержимое HTML (для содержимого таблицы это не практично).Как я мог это сделать?
function inventaire_add_metabox_table() {
add_meta_box(
'metabox_table',
'Contenu',
'show_metabox_table',
'inventaire',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'inventaire_add_metabox_table');
function show_metabox_table() {
global $post;
wp_nonce_field( 'inventaire_add_metabox_table_nonce', 'inventaire_add_table_nonce' );
$table = get_post_meta($post->ID, 'inv_content', true);
?>
<div id="inv-div-content" class="div_content inside" name="inv_content" contenteditable="true">
<?php
}
function inventaire_save_metabox_table( ) {
global $post;
if( !isset( $_POST['inventaire_add_table_nonce'] ) || !wp_verify_nonce( $_POST['inventaire_add_table_nonce'],'inventaire_add_metabox_table_nonce') )
return;
if ( !current_user_can( 'edit_post', $post->ID ))
return;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
$meta_key = 'inv_content';
$new_meta_value = ( isset( $_POST[$meta_key] ) ? $_POST[$meta_key] : '' );
$meta_value = get_post_meta( $post->ID, $meta_key, true);
var_dump( $_POST[$meta_key]);
if ( $new_meta_value && '' == $meta_value ){
add_post_meta( $post->ID, $meta_key, $new_meta_value, true);
echo 'add';
}
elseif ( $new_meta_value && $new_meta_value != $meta_value ){
update_post_meta( $post->ID, $meta_key, $new_meta_value );
echo 'update';
}
elseif ( '' == $new_meta_value && $meta_value ){
delete_post_meta( $post->ID, $meta_key, $meta_value );
echo 'delete';
}
}
add_action( 'save_post', 'inventaire_save_metabox_table' );