2017-12-28 2 views
0

function.php 파일에 체크 박스 메타 박스를 만들었지 만 두 가지 문제점이 있습니다. 체크 박스가 선택되었는지 또는 다음 시간 동안 저장되지 않으면 저장할 수 없습니다. 내가 확인되면 div에 무언가를 보여주고 싶다.체크 박스 메타 박스 저장하고 워드 프레스에서 사용

1) 함수에서 $chk 초기화하기 : filmview_info_meta_save
2) 사용중인 (사용자 제공 코드, 정의되지 않은 변수

<?php 
 
    function filmview_ext_info_meta_box() { 
 
    add_meta_box(
 
    'filmview_ext_info_meta_box', 
 
    __('Extra info', 'filmview_ext_info_meta'), 
 
    'filmview_ext_info_meta_html', 
 
    'filmview', 
 
    'normal', 
 
    'high' 
 
    ); 
 
    } 
 
    add_action('add_meta_boxes', 'filmview_ext_info_meta_box'); 
 

 
    function filmview_ext_info_meta_html($post) { 
 
    wp_nonce_field('_filmview_ext_info_meta_nonce', 'filmview_ext_info_meta_nonce'); ?> 
 

 
     <p> 
 
     <input type="checkbox" id="filmview_ext_info_meta_sub" name="filmview_ext_info_meta_sub" <?php checked($check, 'on'); ?> /> 
 
     <label for="filmview_ext_info_meta_sub">Does it have subtitle?</label> 
 
     </p> 
 
     
 
    <?php 
 
    } 
 

 
function filmview_info_meta_save($post_id) { 
 
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 
 
if (! isset($_POST['filmview_info_meta_nonce']) || ! wp_verify_nonce($_POST['filmview_info_meta_nonce'], '_filmview_info_meta_nonce')) return; 
 
if (! current_user_can('edit_post', $post_id)) return; 
 

 
$chk = isset($_POST['filmview_ext_info_meta_sub']) ? 'on' : 'off'; 
 
    update_post_meta($post_id, 'filmview_ext_info_meta_sub', $chk); 
 
} 
 
add_action('save_post', 'filmview_info_meta_save'); 
 
?>

+0

는 $의 check'은 $가 (BTW 백엔드 코드가 작동하지 않습니다 조각을 추가)되어 chk''초기화되지하지만 결코 '처럼 보인다 –

+0

내가 얻을 수 없다 그것. 어떻게 해결할 수 있습니까? – Elyas

+0

다른 함수에서 변수를 초기화하는 것처럼 보입니다. 내가 게시 할 내 답변을 시도하십시오 –

답변

0

은 내가 볼 수있는 것은 즉) $check

su 후 페이지에있는 $ _POST 대신 데이터베이스에서 읽으십시오. BMIT 양식,이 수행해야합니다

function filmview_ext_info_meta_html($post) { 
    wp_nonce_field('_filmview_ext_info_meta_nonce', 'filmview_ext_info_meta_nonce'); 
    $chk = get_post_meta($post->ID, 'filmview_ext_info_meta_sub', true); 
    ?> 

     <p> 
     <input type="checkbox" id="filmview_ext_info_meta_sub" name="filmview_ext_info_meta_sub" <?php checked($chk[0], 'on'); ?> /> 
     <label for="filmview_ext_info_meta_sub">Does it have subtitle?</label> 
     </p> 

    <?php 
} 
+0

아직 테스트하지 않았으므로 확실하지 않습니다'$ chk [0]'또는'$ chk'가 필요하면 –

+0

그럴 수 없습니다 !! – Elyas

+0

'var_dump ($ chk)'의 출력을 게시 할 수 있습니까? –