2014-02-26 3 views
0

페이지가 다시로드 될 때 확인란에 대한 값이 저장되지 않습니다. 값을 저장하지만 다시로드 할 때 확인란을 업데이트하지 않습니다.확인란이 사용자 지정 설정 페이지에 저장되지 않습니다. Wordpress

현재 워드 프레스 코덱의 설정을 사용하고 있습니다. 페이지가 다시로드되지만 확인란은 표시되지 않으면 레이블 값이 저장되고 다시 채워집니다. 이것은 매우 간단하지만 어떤 이유로 그것을 작동시키지 못합니다.

명확하게하기 위해 확인란의 값이 저장되어있어 사용할 수 있지만 확인란은 최신 선택 즉 확인란을 선택하지 않았거나 선택 취소하지 않았습니다. 그것은 항상 체크되지 않습니다.

<?php 
// create custom plugin settings menu 
add_action('admin_menu', 'baw_create_menu'); 

function baw_create_menu() { 

    //create new top-level menu 
    add_menu_page('BAW Plugin Settings', 'BAW Settings', 'administrator', __FILE__, 'baw_settings_page',plugins_url('/images/opd.png', __FILE__)); 

    //call register settings function 
    add_action('admin_init', 'register_mysettings'); 
} 


function register_mysettings() { 
    //register our settings 
    register_setting('baw-settings-group', 'new_option_name'); 
    register_setting('baw-settings-group', 'some_other_option'); 
    register_setting('baw-settings-group', 'option_etc'); 
    register_setting('baw-settings-group', 'option_name'); 
} 

function baw_settings_page() { 
?> 
<div class="wrap"> 
<h2>Your Plugin Name</h2> 

<form method="post" action="options.php"> 
    <?php settings_fields('baw-settings-group'); ?> 
    <?php do_settings_sections('baw-settings-group'); ?> 
    <table class="form-table"> 
     <tr valign="top"> 
     <th scope="row">New Option Name</th> 
     <td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td> 
     </tr> 

     <input name="option_name" type="checkbox" value="1" <?php checked('1', get_option('option_name')); ?> /> 

     <tr valign="top"> 
     <th scope="row">Some Other Option</th> 
     <td><input type="text" name="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></td> 
     </tr> 

     <tr valign="top"> 
     <th scope="row">Options, Etc.</th> 
     <td><input type="text" name="option_etc" value="<?php echo get_option('option_etc'); ?>" /></td> 
     </tr> 
    </table> 

    <?php submit_button(); ?> 

</form> 
</div> 
<?php } ?> 
+0

'get_option ('option_name')'후 체크 박스가 체크 된 후 무엇을 얻을 수 있습니까? –

+0

값을 호출하면 상자가 체크되어있을 때 1을, 체크하지 않으면 아무것도 얻지 못합니다. – user3297956

답변

0

확인 된 기능에서 따옴표를 제거하십시오. 즉

..

checked(1, get_option('option_name')); 
+0

행운. 작동하지 않았다. – user3297956

0

당신이 변수에 옵션 값을 저장하고 대신 변수를 사용한다면?

$option_name = get_option('option_name'); 

<input name="option_name" type="checkbox" value="1" <?php checked(1, $option_name); ?> /> 
0

checked(1, (int)get_option('option_name')) 에코가 '확인'또는 그 값을 돌려줍니다 테스트하는 경우, get_option('option_name')의 값이 작동하지 않는 경우 1.

checked(1, (int)get_option('option_name'));

을 시도이라고 가정.

확인 된 기능 대신 if (get_option(option_name) == 1) echo 'checked="checked"';을 사용해 보았습니다.

그래도 작동하지 않으면 캐시 문제 일 가능성이 큽니다.

1

나는 그것을 실제로 고쳤다.

양식이 표 안에 있었고 사용하는 방법에 관계없이 상자가 크롬에서 선택되지 않았습니다.

관련 문제