2014-02-26 43 views
0

当我重新加载页面时,我的复选框值不会保存。它会保存该值,但在重新加载时不会更新复选框。复选框不保存在自定义设置页面wordpress

目前我正在使用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

假设的get_option('option_name')值为1

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

如果它不工作,如果测试checked(1, (int)get_option('option_name'))回声“检查”或只是返回。

如果这没有奏效,我会尝试使用if (get_option(option_name) == 1) echo 'checked="checked"';而不是检查的功能。

如果这不起作用,那么这很可能是一些缓存问题。

1

我实际上自己修复了它。

这是因为窗体在表格内,无论您使用何种方法,该框都不会在铬中被检查。

相关问题