我以前也遇到过这个问题。我尝试使用(bool),但问题仍然出现。
(bool) $instance[\'post_date\']
将始终返回true,除非$instance[\'post\\u date\']是空数组、NULL或空字符串
您可以从http://php.net/manual/en/language.types.boolean.php
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
因此,为了处理这个问题,我打印$实例[\'post\\u date\',并获取值“on”。所以现在我的代码看起来像这样,工作得很好。
<?php checked( $instance[\'post_date\'], \'on\' ); ?>