我正在尝试制作一个插件,到目前为止一切都正常,问题是当需要“保存更改”时,文本已保存,但选中的2复选框未保存,因此两者都未选中。
这是屏幕截图,输入类型中输入的文本已保存,因此可以正常工作,但选中的2复选框未选中,这是为什么?
这是我的密码
add_action( \'admin_init\', function() {
register_setting( \'my-awesome-plugin-settings\', \'map_option_1\' );
register_setting( \'my-awesome-plugin-settings\', \'map_option_2\' );
register_setting( \'my-awesome-plugin-settings\', \'map_option_3\' );
register_setting( \'my-awesome-plugin-settings\', \'map_option_4\' );
register_setting( \'my-awesome-plugin-settings\', \'map_option_5\' );
register_setting( \'my-awesome-plugin-settings\', \'map_option_6\' );
});
function sort_post_plugin() {
?>
<div class="wrap">
<form action="options.php" method="post">
<?php
settings_fields( \'my-awesome-plugin-settings\' );
do_settings_sections( \'my-awesome-plugin-settings\' );
?>
<div class="title-set"><h1>SORT POST SETTINGS</h1></div>
<table class="mytable">
<tr>
<th>Posty Type</th>
<td><input type="text" placeholder="Post Type" name="map_option_1" value="<?php echo esc_attr( get_option(\'map_option_1\') ); ?>" size="50" /></td>
</tr>
<tr>
<th>Meta Key</th>
<td><input type="text" placeholder="Meta Key" name="map_option_2" value="<?php echo esc_attr( get_option(\'map_option_2\') ); ?>" size="50" /></td>
</tr>
<tr>
<th>Sorts</th>
<td><input type="checkbox" placeholder="Meta Key" name="map_option_3" />Name<br>
<input type="checkbox" id="cb_name" name="map_option_4">Price<br><input type="text" name="metakey" id="metakey" placeholder="Meta Key"></td>
</tr>
<tr>
<td><?php submit_button(); ?></td>
</tr>
</table>
</form>
</div>
<?php
}
?>
我希望你能帮助我,这是我第一次创建wp插件。非常感谢。
最合适的回答,由SO网友:WebElaine 整理而成
您的代码只输出空复选框。必须检查每个框的值,然后设置checked="checked"
如果这是真的。
<td><input type="checkbox" placeholder="Meta Key" name="map_option_3"
<?php // check whether map_option_3 was saved
if(isset(get_option(\'map_option_3\'))) { ?>checked="checked"<?php } ?>
/>Name<br>
<input type="checkbox" id="cb_name" name="map_option_4"
<?php // check whether map_option_4 was saved
if(isset(get_option(\'map_option_4\'))) { ?>checked="checked"<?php } ?>
/>Price<br><input type="text" name="metakey" id="metakey" placeholder="Meta Key"></td>
您还应该将名称和价格制作成实际的表单标签,而不仅仅是方框旁边的纯文本。:)