我尝试使用Wordpress设置API保护复选框。为此,我使用checked()
作用首先,我用add_settings_field()
并将数组中的视图参数传递给回调函数。
在字段的回调函数中,我使用
printf(
\'<input type="checkbox" id="%2$s" name="%1$s[%2$s]" \'. checked("on", \'%3$s\').\'
<label for="%2$s">%4$s</label>
<hr /> \',
$args[\'option_name\'],
$args[\'name\'],
$args[\'value\'],
$args[\'description\']
);
现在通常应保存复选框。
BUT 检查功能不起作用。
打印参数值时%3$s
则值为“on“如果选中该字段,并且nothing 如果未选中该字段。但检查功能从未触发,即使%3$s
是“on“。
仅当我插入“on”字符串时checked("on", \'on\')
直接返回checked。
所以我的问题是:为什么我不能使用%3$s
在选中的函数中
最合适的回答,由SO网友:socki03 整理而成
因为操作顺序意味着您要在printf函数运行之前将该变量传递到您的checked函数中,这就是解析枚举变量的原因。
以下是一个可能的解决方案,但尚未对其进行测试:
printf(
\'<input type="checkbox" id="%2$s" name="%1$s[%2$s]" %3$s)\'.
\'<label for="%2$s">%4$s</label>\' .
\'<hr />\',
$args[\'option_name\'],
$args[\'name\'],
checked("on", $args[\'value\'], false ),
$args[\'description\']
);