php - 复选框不会在插件设置页面上保持选中状态

标签 php wordpress

我编写的插件页面上的复选框字段不会保持选中状态。正在保存数据,但复选框未反射(reflect)当前存储的值(已选中)。

这是我的函数代码:

public function jo_checkbox_del_setting()
{
    echo "<input id='jo_checkbox_del' name='jo_plugin_options[jo_checkbox_del]' type='checkbox' value='{$this->options['jo_checkbox_del']}' />";
}

add_settings_field 代码:

add_settings_field('jo_checkbox_del', 'Hide Delete Button: ', array($this, 'jo_checkbox_del_setting'), __FILE__, 'jo_main_section');

enter image description here

正如你在图片中看到的那样,值为 1 已选中,但复选框在刷新后永远不会保持选中状态。

最佳答案

我更喜欢使用 WordPress checked()函数 printf() (有关用法示例,请参阅 sprintf() 的页面):

printf(
    '<input id="%1$s" name="jo_plugin_options[%1$s]" type="checkbox" %2$s />',
    'jo_checkbox_del',
    checked( isset( $this->options['jo_checkbox_del'] ), true, false )
);

关于php - 复选框不会在插件设置页面上保持选中状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675307/

相关文章:

php - SilverStripe:如何向另一个网站发出 HTTP 请求?

php rabbitmq消费者重新连接

php - 如果表已经存在,是否可以选择在 MySQL 中添加列和/或创建表?

php - Woocommerce 设置运输方式,获取运费

wordpress - 如何编辑 VVV 实例化 VM 的 nginx.conf?

javascript - XML 和 PHP - 如果节点存在,则覆盖数据,如果不存在,则创建一个新节点

php - 如何使用php:7.2.21-fpm构建的docker容器从本地debian镜像安装debian软件包?

wordpress - 修改 WordPress WooCommerce 面包屑

javascript - .load Wordpress Posts 调用未定义的函数 query_posts()

javascript - WP 中模块的折叠/折叠样式