2017-12-28 25 views
0

functions.phpファイルにチェックボックスのメタボックスを作成しましたが、2つの問題があります。チェックボックスがオンになっているかどうかは、次回は保存できません。それがチェックされている場合は、divに何かを表示したい。私が見ることができる何チェックボックスのメタボックスを保存してワードプレスで使用する

<?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

ことです:あなたは、関数内で$chkを初期化

1):filmview_info_meta_save
2)あなたは、あなたの提供されたコードと(未定義の変数を使用しています)$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)'の出力を投稿できますか? –

関連する問題