1

我有一个复选框,其默认状态未选中:

<?php
function edit_theme_settings() {
    if ( get_option('sold_text') == true ) { $display = 'checked'; }
    else { $display = ''; }
    update_option( 'sold_text', $display );
?>

<input type="checkbox" name="sold_text" id="sold_text" <?php echo get_option('sold_text'); ?> />

我希望在第一次显示表单时取消选中它的默认状态,随后它的“选中”状态应该由 get_option('sold_text') 定义。

4

2 回答 2

4

在这种情况下,这两个建议都不适合我,但我认为我已经通过使用add_option()自己解决了这个问题

一种将命名选项/值对添加到选项数据库表的安全方法。如果选项已经存在,它什么也不做

所以我做了:add_option('sold_text') 的值为'checked',因此复选框默认为选中。现在,由于该选项已经存在,所以 add_option() 下次加载或提交表单时什么都不做,而 update_option() 处理复选框状态的更新......

<?php
function edit_theme_settings() {

add_option( 'sold_text', 'checked' );

if ( get_option('sold_text') == true ) { $display = 'checked'; }
else { $display = ''; }
update_option( 'sold_text', $display );
?>

<input type="checkbox" name="sold_text" id="sold_text" <?php echo get_option('sold_text'); ?> />
于 2013-08-05T06:43:05.433 回答
1

复选框存储为 0 或 1(用于未选中、选中),因此您需要以下内容:

<input type="checkbox" name='sold_text' id='sold_text' value="1" <?= checked( get_option('sold_text'), 1, false );?> />

WP 的 checked() 函数就是为此设计的:http ://codex.wordpress.org/Function_Reference/checked

于 2013-08-04T21:53:17.790 回答