使用TinyMCE来管理自定义的帖子元编辑表单


using TinyMCE for managing custom post meta in post edit form

我一直在尝试实现一个TinyMCE文本区域,用于添加和编辑post meta项目,下面是我尝试的代码。

我能够生成后编辑形式的TinyMCE编辑器,但不能从DB加载后元数据,有人能帮助我吗?提前谢谢。

function target_audience_get_meta( $value ) {
global $post;
$field = get_post_meta( $post->ID, '_target_audience', true );
if ( ! empty( $field ) ) {
    return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
    return false;
}
}
function target_audience_add_meta_box() {
add_meta_box(
    'target_audience',
    __( 'Target Audience', 'target_audience' ),
    'target_audience_html',
    'product',
    'normal',
    'default'
);
}
function target_audience_html(){
wp_nonce_field( '_target_audience_nonce', 'target_audience_nonce' ); 
$target_audience = get_post_meta($post->ID, '_target_audience', true);
wp_editor( $target_audience, '_target_audience', array(
'wpautop'       => true,
'media_buttons' => false,
'textarea_name' => 'target_audience',
'textarea_rows' => 10,
'teeny'         => true
) );
}
function target_audience_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['target_audience'] ) || ! wp_verify_nonce( $_POST['target_audience_nonce'], '_target_audience_nonce' ) ) return;
 if ( isset( $_POST['target_audience'] ) )
    update_post_meta( $post_id, '_target_audience', esc_attr( $_POST['target_audience'] ) );
}
add_action( 'save_post', 'target_audience_save' );
target_audience_get_meta('_target_audience');

这个问题很简单。我只是忘了给函数target_audience_html($post)输入$post参数。