2016-07-06 1 views
1

포스트 메타 아이템을 추가하고 편집하기 위해 TinyMCE 텍스트 영역을 구현하려고했습니다. 아래 코드는 제가 시도한 코드입니다.wordpress - 포스트 편집 폼에서 사용자 정의 포스트 메타를 관리하기 위해 TinyMCE 사용하기

포스트 편집 폼에서 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'); 

답변

0

문제는 매우 간단합니다. 방금 $post 매개 변수를 target_audience_html($post) 함수에 입력하는 것을 잊었습니다. 이제는 효과가 있습니다.